91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

JSON各種轉換問題怎么解決

發布時間:2023-03-06 11:43:16 來源:億速云 閱讀:154 作者:iii 欄目:開發技術

這篇文章主要講解了“JSON各種轉換問題怎么解決”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“JSON各種轉換問題怎么解決”吧!

首先引入jar包:

<dependency>
   <groupId>com.alibaba</groupId>
   <artifactId>fastjson</artifactId>
   <version>1.2.83</version>
</dependency>

JSON相關

1.json轉對象

Student o = JSONObject.parseObject(jsonString, Student.class);

2.json轉List

List<Student> studentList = JSONObject.parseArray(jsonString, Student.class);

或者

String jsonString = “[[1,"zhangsan","male",18,"Beijing"],[2,"lisi","female",18,"Shanghai"]]”
List<List<Object>> list = JSON.parseObject([jsonString], new TypeReference<List<List<Object>>>() {});

3.對象轉json

JSON.toJSONString(user);

4.List轉json

JSON.toJSONString(users);

JSONObject相關:

1.json轉JSONObject方法

String json = "";
JSONObject jsonObject = JSON.parseObject(json);

2.JSONObject轉json方法

jsonObject.getString(key);

3.JSONObject轉List

JSONObject jsonObject = JSON.parseObject(json);
// 獲取到我們的jsonobject參數,并toJSONString
String s = JSONArray.toJSONString(jsonObject.get("servers"));
// 將json字符串轉換為集合對象(實體類就省略了啊)
List<AnswerCardVo> cardVos = JSONArray.parseArray(s, AnswerCardVo.class);

4.Map轉JSONObject

//直接調用new方法

Map map1 = new HashMap();
        map1.put("one",users1);
        map1.put("two",users1);
        JSONObject mapJsonObject =(JSONObject) JSONObject.toJSON(map1);
        System.out.println(mapJsonObject);

以上內容是接收字段與json字段一致的時候,那么不一致的時候怎么處理?

com.fasterxml.jackson包

例:json串內容如下,要轉成List

注意:可以看到,該json串中屬性名是這樣的OS-EXT-STS:task_state,那么我們接收的bean就無法寫成這個屬性名去接收,所以需要在接收Bean中使用注解@JsonProperty進行處理

json串

{
"count": 3,
"servers": [{
"fault": null,
"id": "5c1ac257-",
"OS-EXT-STS:task_state": null,
"cpu_options": {
"hw:cpu_threads": null
}
}]
}

可以看到注解@JsonProperty中指定了要接收哪個的值,這樣就可以正常轉換了

對象:

public class HwInstance {

private String fault;

private String id;

@JsonProperty("OS-EXT-STS:task_state")
private String state;
@JsonProperty("cpu_options")
private Object options;
}

轉List

方法一:

@Autowired
private ObjectMapper objectMapper;
String json = "";
JSONObject jsonObject = JSON.parseObject(json);
JavaType javaType = objectMapper.getTypeFactory().constructParametricType(ArrayList.class, HwInstance.class);
List<HwInstance> instances = objectMapper.readValue(objectMapper.readTree(jsonObject.toJSONString()).get("servers").toString(), javaType);

方法二:

@Autowired
private ObjectMapper objectMapper;
String json = "";
List<HwInstance> instances = objectMapper.readValue(objectMapper.readTree(json).get("servers").toString(),new TypeReference<List<HwInstance>>(){});

注意:可能會遇到報錯的情況如下:

報錯信息:com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException: Unrecognized field “isleader”

意思是json&rsquo;中的字段與實體類不匹配,解決辦法如下:

辦法一:給objectMapper設置一個屬性

objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);

辦法二:給實體類加一個注解

@JsonIgnoreProperties(ignoreUnknown = true)

感謝各位的閱讀,以上就是“JSON各種轉換問題怎么解決”的內容了,經過本文的學習后,相信大家對JSON各種轉換問題怎么解決這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

健康| 兴安县| 东光县| 乐昌市| 德格县| 榆中县| 枞阳县| 绿春县| 金川县| 海丰县| 襄城县| 西乌珠穆沁旗| 平遥县| 普洱| 永顺县| 右玉县| 宜君县| 南平市| 嘉峪关市| 普格县| 怀柔区| 祁东县| 台东市| 腾冲县| 韩城市| 图片| 芷江| 庆阳市| SHOW| 拉孜县| 收藏| 淳化县| 客服| 工布江达县| 镇安县| 丘北县| 鄱阳县| 无棣县| 大城县| 永平县| 榆树市|