色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

java 多層map轉(zhuǎn)換json

Java是一種面向?qū)ο蟮木幊陶Z言,在軟件開發(fā)中被廣泛應(yīng)用。在Java開發(fā)中,我們經(jīng)常需要將復(fù)雜的數(shù)據(jù)結(jié)構(gòu)轉(zhuǎn)換成JSON格式,以便于傳輸和解析。其中,多層Map轉(zhuǎn)換成JSON是非常常見的操作。

多層Map轉(zhuǎn)換成JSON需要遵循一定的轉(zhuǎn)換規(guī)則,大致分為兩個(gè)步驟:創(chuàng)建一個(gè)JSONObject,遞歸地將多層Map轉(zhuǎn)換成JSONObject。

import com.alibaba.fastjson.JSONObject;
import java.util.HashMap;
import java.util.Map;
public class MapToJsonUtils {
public static JSONObject map2Json(Map map) {
JSONObject json = new JSONObject();
for (Object key : map.keySet()) {
Object value = map.get(key);
if (value instanceof Map) {
json.put((String) key, map2Json((Map) value)); //遞歸調(diào)用
} else {
json.put((String) key, value);
}
}
return json;
}
public static void main(String[] args) {
Map map = new HashMap();
map.put("name", "Tom");
map.put("age", 20);
Map address = new HashMap();
address.put("province", "Beijing");
address.put("city", "Haidian");
map.put("address", address);
JSONObject json = map2Json(map);
System.out.println(json.toJSONString());
}
}

在上述代碼中,我們首先定義了一個(gè)靜態(tài)的map2Json()方法,該方法接收一個(gè)Map類型的參數(shù)并返回一個(gè)JSONObject。在方法中,我們遍歷Map中的所有key-value對(duì),如果value是Map類型則遞歸調(diào)用map2Json()方法,否則直接將value添加到JSONObject中。最后,返回JSONObject對(duì)象。

在main()方法中,我們定義了一個(gè)多層Map并將其轉(zhuǎn)換成JSON格式打印出來。運(yùn)行程序,輸出結(jié)果如下:

{"name":"Tom","age":20,"address":{"province":"Beijing","city":"Haidian"}}

可以看到,多層Map已經(jīng)成功轉(zhuǎn)換成了JSON格式。