package com.hanfan.test;// HANFAN自动读取PC名字,也可以写死这个名字 import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import java.util.HashMap; import java.util.Map; /** * @Author HANFAN * @Date 2022/4/21 16:01 * @Version 1.0 */ public class mapAndJsonCast { public static void main(String[] args) { /* map转化JSON字符串常用 */ Map testMap = new HashMap<>(); testMap.put("str1","fu"); testMap.put("str2","ck"); String str = JSON.toJSONString(testMap); System.out.println("testMap的值:" + testMap); // 打印的结果是: testMap的值:{str1=fu, str2=ck} } }
/* JSON字符串转JSON对象常用*/ String jsonStr = "{\"str3\":\"zhangsan\",\"str4\":\"lisi\",\"str5\":\"wangwu\",\"str6\":\"maliu\"}"; JSONObject jsonObject = JSONObject.parseObject(jsonStr); System.out.println("jsonObject:" + jsonObject); // 打印的结果是: jsonObject:{"str5":"wangwu","str6":"maliu","str3":"zhangsan","str4":"lisi"}
由上面兩個轉換可知,map先轉成JSON字串,再由JSON字串轉換成JSON物件
/*Map转JSON对象常用 */ JSONObject JSONObj = JSONObject.parseObject(JSON.toJSONString(testMap)); System.out.println("JSONObj:" + JSONObj); // 打印的结果是: JSONObj:{"str1":"fu","str2":"ck"}
/* JSON字符串转Map常用*/ Map<String,Object> strMap = JSONObject.parseObject(jsonStr); System.out.println("strMap:" + strMap); // 打印的结果是: strMap:{"str5":"wangwu","str6":"maliu","str3":"zhangsan","str4":"lisi"}
其實就是json物件先轉為json字元串,json字串再轉map
/*JSON对象转map常用*/ Map<String,Object> jsonToMap = JSONObject.parseObject(jsonObject.toJSONString()); System.out.println("jsonToMap:"+jsonToMap); // 打印的结果是: jsonToMap:{"str5":"wangwu","str6":"maliu","str3":"zhangsan","str4":"lisi"}
//JSON对象转JSON字符串 String jsonToStr = jsonObject.toJSONString(); System.out.println("jsonToStr=>"+jsonToStr); // 打印的结果是: jsonToStr=>{"str5":"wangwu","str6":"maliu","str3":"zhangsan","str4":"lisi"}
根據上述轉換,不難得到三者之間的關係
為了方便記憶,可以換個思維,
Map轉jsonObject時,Map是主體,JSON代表的是Map【簡稱,JSON代表Map】;
jsonObject轉Map時,jsonObject是主體,jsonObject代表的還是JSONObject【簡稱,我代表我自己】
Map與JSON的區別,我只知道是「=」與「:」之間的區別。
/* map转化JSON字符串常用 */ MaptestMap = new HashMap<>(); testMap.put("str1","fu"); testMap.put("str2","ck"); String str = JSON.toJSONString(testMap); System.out.println("testMap的值:" + testMap); // 打印的结果是: testMap的值:{str1=fu, str2=ck} /* JSON字符串转JSON对象常用*/ String jsonStr = "{\"str3\":\"zhangsan\",\"str4\":\"lisi\",\"str5\":\"wangwu\",\"str6\":\"maliu\"}"; JSONObject jsonObject = JSONObject.parseObject(jsonStr); System.out.println("jsonObject:" + jsonObject); // 打印的结果是: jsonObject:{"str5":"wangwu","str6":"maliu","str3":"zhangsan","str4":"lisi"}
由列印結果可知,Map是”=“,jsonObject是”:“,
究竟用哪個,以實際情況確定。
全域搜尋:Ctrl H
根據檔案名稱搜尋:Ctrl ShiftR/T
在某一個類別中搜尋:Ctrl F
加註【/**/】:Ctrl Shift /[兩次使用,則是放開註解]
【// 】 :Ctrl /[兩次使用,則是放開註解]
以上是如何在Java中將Map和JSON資料相互轉換?的詳細內容。更多資訊請關注PHP中文網其他相關文章!