Java中Map與JSON數(shù)據(jù)之間的互相轉(zhuǎn)化
map
此內(nèi)容是方便博主自己記憶內(nèi)容,不用于公開學(xué)習(xí)資料,若發(fā)現(xiàn)語法錯(cuò)誤,自行更正,勿噴
map轉(zhuǎn)JSON字符串
package com.hanfan.test;// HANFAN自動(dòng)讀取PC名字,也可以寫死這個(gè)名字
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轉(zhuǎn)化JSON字符串常用 */
Map testMap = new HashMap<>();
testMap.put("str1","fu");
testMap.put("str2","ck");
String str = JSON.toJSONString(testMap);
System.out.println("testMap的值:" + testMap);
// 打印的結(jié)果是: testMap的值:{str1=fu, str2=ck}
}
}JSON字符串轉(zhuǎn)JSON對(duì)象
/* JSON字符串轉(zhuǎn)JSON對(duì)象常用*/
String jsonStr = "{\"str3\":\"zhangsan\",\"str4\":\"lisi\",\"str5\":\"wangwu\",\"str6\":\"maliu\"}";
JSONObject jsonObject = JSONObject.parseObject(jsonStr);
System.out.println("jsonObject:" + jsonObject);
// 打印的結(jié)果是: jsonObject:{"str5":"wangwu","str6":"maliu","str3":"zhangsan","str4":"lisi"}
Map轉(zhuǎn)JSON對(duì)象
由上面兩條轉(zhuǎn)化可知,map先轉(zhuǎn)成JSON字符串,再由JSON字符串轉(zhuǎn)化成JSON對(duì)象
/*Map轉(zhuǎn)JSON對(duì)象常用 */
JSONObject JSONObj = JSONObject.parseObject(JSON.toJSONString(testMap));
System.out.println("JSONObj:" + JSONObj);
// 打印的結(jié)果是: JSONObj:{"str1":"fu","str2":"ck"}
JSON字符串轉(zhuǎn)Map
/* JSON字符串轉(zhuǎn)Map常用*/
Map<String,Object> strMap = JSONObject.parseObject(jsonStr);
System.out.println("strMap:" + strMap);
// 打印的結(jié)果是: strMap:{"str5":"wangwu","str6":"maliu","str3":"zhangsan","str4":"lisi"}
JSON對(duì)象轉(zhuǎn)Map
其實(shí)就是json對(duì)象先轉(zhuǎn)成json字符串,json字符串再轉(zhuǎn)map
/*JSON對(duì)象轉(zhuǎn)map常用*/
Map<String,Object> jsonToMap = JSONObject.parseObject(jsonObject.toJSONString());
System.out.println("jsonToMap:"+jsonToMap);
// 打印的結(jié)果是: jsonToMap:{"str5":"wangwu","str6":"maliu","str3":"zhangsan","str4":"lisi"}JSON對(duì)象轉(zhuǎn)JSON字符串
//JSON對(duì)象轉(zhuǎn)JSON字符串
String jsonToStr = jsonObject.toJSONString();
System.out.println("jsonToStr=>"+jsonToStr);
// 打印的結(jié)果是: jsonToStr=>{"str5":"wangwu","str6":"maliu","str3":"zhangsan","str4":"lisi"}根據(jù)以上轉(zhuǎn)換,不難得出三者之間的關(guān)系 (圖丑,勿噴。)

為了方便記憶,可以換一種思維,
Map轉(zhuǎn)jsonObject時(shí),Map是主體,JSON代表的是Map【簡稱,JSON代表Map】;
jsonObject轉(zhuǎn)Map時(shí),jsonObject是主體,jsonObject代表的還是JSONObject【簡稱,我代表我自己】
Map與JSON的區(qū)別,我只知道是“=”與“:” 之間的區(qū)別。
/* map轉(zhuǎn)化JSON字符串常用 */
Map<String,Object> testMap = new HashMap<>();
testMap.put("str1","fu");
testMap.put("str2","ck");
String str = JSON.toJSONString(testMap);
System.out.println("testMap的值:" + testMap);
// 打印的結(jié)果是: testMap的值:{str1=fu, str2=ck}
/* JSON字符串轉(zhuǎn)JSON對(duì)象常用*/
String jsonStr = "{\"str3\":\"zhangsan\",\"str4\":\"lisi\",\"str5\":\"wangwu\",\"str6\":\"maliu\"}";
JSONObject jsonObject = JSONObject.parseObject(jsonStr);
System.out.println("jsonObject:" + jsonObject);
// 打印的結(jié)果是: jsonObject:{"str5":"wangwu","str6":"maliu","str3":"zhangsan","str4":"lisi"}
由打印結(jié)果可知,Map是”=“,jsonObject是”:“,
究竟用哪個(gè),以實(shí)際情況確定。
IDEA功能快捷鍵
全局搜索:Ctrl + H
根據(jù)文件名搜索:Ctrl + Shift+ R/T
在某一個(gè)類中搜索:Ctrl + F
加注釋【/**/】:Ctrl + Shift + / [兩次使用,則是放開注釋]
【// 】:Ctrl + / [兩次使用,則是放開注釋]
總結(jié)
到此這篇關(guān)于Java中Map與JSON數(shù)據(jù)之間互相轉(zhuǎn)化的文章就介紹到這了,更多相關(guān)Map與JSON數(shù)據(jù)互相轉(zhuǎn)化內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- 詳解JSON與?Java對(duì)象之間的轉(zhuǎn)化
- Java中Json與List、Map、entity的互相轉(zhuǎn)化
- java 將jsonarray 轉(zhuǎn)化為對(duì)應(yīng)鍵值的jsonobject方法
- Json轉(zhuǎn)化為Java對(duì)象的實(shí)例詳解
- json-lib將json格式的字符串,轉(zhuǎn)化為java對(duì)象的實(shí)例
- java中實(shí)體類和JSON對(duì)象之間相互轉(zhuǎn)化
- Java 中Json中既有對(duì)象又有數(shù)組的參數(shù)如何轉(zhuǎn)化成對(duì)象(推薦)
相關(guān)文章
SpringMVC自定義攔截器登錄檢測(cè)功能的實(shí)現(xiàn)代碼
這篇文章主要介紹了SpringMVC自定義攔截器登錄檢測(cè)功能的實(shí)現(xiàn),本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-08-08
Java設(shè)計(jì)模式之簡單工廠 工廠方法 抽象工廠深度總結(jié)
設(shè)計(jì)模式(Design Pattern)是前輩們對(duì)代碼開發(fā)經(jīng)驗(yàn)的總結(jié),是解決特定問題的一系列套路。它不是語法規(guī)定,而是一套用來提高代碼可復(fù)用性、可維護(hù)性、可讀性、穩(wěn)健性以及安全性的解決方案2021-09-09
詳解SpringBoot配置文件啟動(dòng)時(shí)動(dòng)態(tài)配置參數(shù)方法
這篇文章主要介紹了詳解SpringBoot配置文件啟動(dòng)時(shí)動(dòng)態(tài)配置參數(shù)方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-11-11
ReentrantReadWriteLock?讀寫鎖分析總結(jié)
這篇文章主要介紹了ReentrantReadWriteLock 讀寫鎖分析總結(jié),ReentranReadWriteLock中有兩把鎖,一把讀鎖,一把寫鎖,關(guān)于這兩把鎖的介紹,需要的小伙伴可以參考一下2022-05-05
Java設(shè)計(jì)模式之代理模式與裝飾模式實(shí)例詳解
這篇文章主要介紹了Java設(shè)計(jì)模式之代理模式與裝飾模式,結(jié)合具體實(shí)例形式分析了代理模式與裝飾模式的概念、功能、java實(shí)現(xiàn)方法與相關(guān)使用注意事項(xiàng),需要的朋友可以參考下2017-09-09
在?Java?中將Object?轉(zhuǎn)換為?Int的四種方法
這篇文章主要介紹了在Java中如何將?Object?轉(zhuǎn)換為Int,本文研究了在?Java中將Object轉(zhuǎn)換為int的四種不同方法,結(jié)合示例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下2023-05-05

