微服務(wù)遠(yuǎn)程調(diào)用返回linkedhashMap對(duì)象

關(guān)于遠(yuǎn)程調(diào)用返回linkedhashMap原因:

因?yàn)閞pc遠(yuǎn)程調(diào)用在底層還是使用的HTTPClient罢浇,所以在傳遞參數(shù)的時(shí)候关翎,必定要有個(gè)順序扛门,當(dāng)你傳遞map的時(shí)候map里面的值也要有順序,不然服務(wù)層在接的時(shí)候就出問題了纵寝,所以它才會(huì)轉(zhuǎn)為linkedhashMap论寨。

spring 有一個(gè)類叫ModelMap,繼承了linkedhashMap public

class ModelMap extends

LinkedHashMap,所以一個(gè)接口返回的結(jié)果就可以直接用ModelMap來接爽茴,注意ModelMap是沒有泛型的葬凳,不管你返回的結(jié)果是什么類型的map令哟,泛型是多復(fù)雜的map签孔,都可以直接new一個(gè)Modelmap蛾坯,用它來接返回的結(jié)果衰齐。

ObjectMapper mapper =new ObjectMapper();

List recommendGroupList = mapper.convertValue(resultMap.get("records"),

? ? ? ? new TypeReference>(){});

以上處理方法需要將接收的對(duì)象用:@JsonIgnoreProperties(ignoreUnknown =true) 否則當(dāng)別的服務(wù)新增字段時(shí)候,本服務(wù)沒同步增加會(huì)報(bào)錯(cuò).。

微服務(wù)中從其他服務(wù)獲取過來的對(duì)象啊终,如果從Object強(qiáng)轉(zhuǎn)為自定義的類型會(huì)報(bào)錯(cuò)部默,利用ObjectMapper轉(zhuǎn)換帽蝶。

ObjectMapper mapper =new ObjectMapper();

DefaultResponse defaultResponse = proxy.getData();

Listresources = () defaultResponse.getData();? //這里的場(chǎng)景是:data是一個(gè)Object類型的绒怨,但是它其實(shí)是一個(gè)List江场,想把List中的每個(gè)對(duì)象分別轉(zhuǎn)成可用的對(duì)象for(inti = 0; i < serviceDateResources.size(); i++) {

? ? Resource resource = mapper.convertValue(resources.get(i), Resource.class);? //經(jīng)過這步處理,resource就是可用的類型了窖逗,如果不轉(zhuǎn)化會(huì)報(bào)錯(cuò)

}

上面轉(zhuǎn)換的過程中,如果返回的字段你不是都需要餐蔬,需要忽略其中的幾個(gè)字段碎紊,在自定義的類中添加如下:

import org.codehaus.jackson.annotate.JsonIgnoreProperties;

@JsonIgnoreProperties(ignoreUnknown =true)

public class Resource {//? private Integer orderId; //提供有這個(gè)參數(shù),但是不想獲取? private Integer otrerFiled;

}

或者下面方法:這兩種方法不用添加注解

一:ObjectMapper mapper = new ObjectMapper().setVisibility(JsonMethod.FIELD,Visibility.ANY);

? mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);

二:ObjectMapperobjectMapper=newObjectMapper();mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);

ObjectMapper可以實(shí)現(xiàn)對(duì)象到j(luò)son等其他格式的互轉(zhuǎn)樊诺。如果向?qū)ava對(duì)象轉(zhuǎn)成Json格式仗考,可以用:

ObjectMapper mapper =new ObjectMapper();

mapper.writeValueAsString(object);

會(huì)有JsonProcessingException異常,需要自己處理词爬。在轉(zhuǎn)換的過程中秃嗜,有可能有的屬性被設(shè)成空就不序列化等的需求,可以在類的屬性上或直接在類上加上一下注解顿膨。用在屬性上就是只針對(duì)一個(gè)屬性锅锨,用在類上就是針對(duì)類里的所有屬性。

@JsonInclude(Include.NON_NULL)

@JsonInclude(Include.Include.ALWAYS) 默認(rèn)

@JsonInclude(Include.NON_DEFAULT) 屬性為默認(rèn)值不序列化

@JsonInclude(Include.NON_EMPTY) 屬性為 空(“”) 或者為 NULL 都不序列化

@JsonInclude(Include.NON_NULL) 屬性為NULL 不序列化

因?yàn)樾【幨菆D片上傳恋沃,應(yīng)用如下:

? ? R uploadFile = uploadFeignService.Upload(file, userId);//獲取遠(yuǎn)程對(duì)象

? ? ObjectMapper mapper = new ObjectMapper();//進(jìn)行轉(zhuǎn)換

? ? String jsonStr =mapper.writeValueAsString(uploadFile.get("filePath"));//將linkedhashMap轉(zhuǎn)為json

? ? JSONObject jsondata= JSON.parseObject(jsonStr);//json對(duì)象

? ? String path = jsondata.getString("path");

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末必搞,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子囊咏,更是在濱河造成了極大的恐慌恕洲,老刑警劉巖塔橡,帶你破解...
    沈念sama閱讀 221,331評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異霜第,居然都是意外死亡葛家,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,372評(píng)論 3 398
  • 文/潘曉璐 我一進(jìn)店門泌类,熙熙樓的掌柜王于貴愁眉苦臉地迎上來癞谒,“玉大人,你說我怎么就攤上這事末誓〕毒悖” “怎么了?”我有些...
    開封第一講書人閱讀 167,755評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵喇澡,是天一觀的道長(zhǎng)迅栅。 經(jīng)常有香客問我,道長(zhǎng)晴玖,這世上最難降的妖魔是什么读存? 我笑而不...
    開封第一講書人閱讀 59,528評(píng)論 1 296
  • 正文 為了忘掉前任,我火速辦了婚禮呕屎,結(jié)果婚禮上让簿,老公的妹妹穿的比我還像新娘。我一直安慰自己秀睛,他們只是感情好尔当,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,526評(píng)論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著蹂安,像睡著了一般椭迎。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上田盈,一...
    開封第一講書人閱讀 52,166評(píng)論 1 308
  • 那天畜号,我揣著相機(jī)與錄音,去河邊找鬼允瞧。 笑死简软,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的述暂。 我是一名探鬼主播痹升,決...
    沈念sama閱讀 40,768評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼畦韭!你這毒婦竟也來了视卢?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,664評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤廊驼,失蹤者是張志新(化名)和其女友劉穎据过,沒想到半個(gè)月后惋砂,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,205評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡绳锅,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,290評(píng)論 3 340
  • 正文 我和宋清朗相戀三年西饵,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片鳞芙。...
    茶點(diǎn)故事閱讀 40,435評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡眷柔,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出原朝,到底是詐尸還是另有隱情驯嘱,我是刑警寧澤,帶...
    沈念sama閱讀 36,126評(píng)論 5 349
  • 正文 年R本政府宣布喳坠,位于F島的核電站鞠评,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏壕鹉。R本人自食惡果不足惜剃幌,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,804評(píng)論 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望晾浴。 院中可真熱鬧负乡,春花似錦、人聲如沸脊凰。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,276評(píng)論 0 23
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽狸涌。三九已至切省,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間杈抢,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,393評(píng)論 1 272
  • 我被黑心中介騙來泰國打工仑性, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留惶楼,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,818評(píng)論 3 376
  • 正文 我出身青樓诊杆,卻偏偏與公主長(zhǎng)得像歼捐,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子晨汹,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,442評(píng)論 2 359