十年網(wǎng)站開(kāi)發(fā)經(jīng)驗(yàn) + 多家企業(yè)客戶 + 靠譜的建站團(tuán)隊(duì)
量身定制 + 運(yùn)營(yíng)維護(hù)+專業(yè)推廣+無(wú)憂售后,網(wǎng)站問(wèn)題一站解決
比如我們想轉(zhuǎn)成下面的對(duì)象
@Data
public class TestParam {private String name;
private Integer age;
}
那么你的代碼可能是這樣的
@Test
void test(){String json = "{\"name\":\"一只小哎呀\",\"age\":18}";
TestParam param = JSON.parseObject(json, TestParam.class);
}
于是我在代碼里回到18了~
那么如果你的json想轉(zhuǎn)成list呢?別擔(dān)心,也有現(xiàn)成的接口能幫我們辦好
String json = "[{\"name\":\"一只小哎呀\",\"age\":18},{\"name\":\"一只豬豬俠\",\"age\":30}]";
ListparamList = JSON.parseArray(json, TestParam.class);
如果我們想轉(zhuǎn)成map呢?要怎么辦呢?
天真的小哎呀覺(jué)得Map也是對(duì)象呀 可以JSON.parseObject(json, HashMap.class);嗎?
???
java.lang.ClassCastException: com.alibaba.fastjson.JSONObject cannot be cast to com.不給你看======support.model.TestParam
為什么呢?因?yàn)榫幾g器只知道要轉(zhuǎn)成map,但是沒(méi)有告訴編譯器map里要轉(zhuǎn)成什么類型,那么怎么才能告訴編譯器具體的類型呢?
???
于是commond+shift+F讓我抄抄別人的代碼。。
void test(){String json = "{\"等飯吃\":{\"name\":\"一只小哎呀\",\"age\":18},\"飼養(yǎng)員\":{\"name\":\"一只豬豬俠\",\"age\":30}}";
MapparamMap = JSON.parseObject(json, new TypeReference>() {});
TestParam param= paramMap.get("等飯吃");
}
-----------碎碎念時(shí)間-----
小哎呀今年換了份新工作,這邊架構(gòu)更想考慮"靈活",弄的代碼里很多json/map這種結(jié)構(gòu),不敢相信這是阿里系的子公司
大家怎么看待靈活和規(guī)范的取舍嘞?
你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級(jí)服務(wù)器適合批量采購(gòu),新人活動(dòng)首月15元起,快前往官網(wǎng)查看詳情吧