package com.jingsong.test;
import cn.hutool.core.io.IoUtil;
import cn.hutool.core.util.CharsetUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.TypeReference;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.InputStream;
import java.util.*;
@SuppressWarnings("unchecked")
public class JSONTest {
public static void main(String[] args) {
String data = parseData("data/json_test_data.json");
JSONObject jsonObject = JSON.parseObject(data);
LinkedHashMap<String, String> linkedJsonObject = JSON.parseObject(data, new TypeReference<LinkedHashMap<String, String>>() {
});
String manStr = jsonObject.getString("man");
Man man = JSON.parseObject(manStr, Man.class);
System.out.println("man = " + man);
String mapStr = jsonObject.getString("map");
HashMap<String, String> map = JSON.parseObject(mapStr, HashMap.class);
for (Map.Entry<String, String> entry : map.entrySet()) {
System.out.println(entry.getKey() + "\t" + entry.getValue());
}
String listStr = jsonObject.getString("list");
List<String> list = JSON.parseArray(listStr, String.class);
list.forEach(System.out::println);
Man otherMan = new Man("jingnan", 12, Arrays.asList("phone", "phone", "phone"));
String otherManStr = JSON.toJSONString(otherMan);
System.out.println("otherManStr = " + otherManStr);
}
private static ClassLoader classLoader = JSONTest.class.getClassLoader();
private static String parseData(String filePath) {
InputStream is = classLoader.getResourceAsStream(filePath);
return IoUtil.read(is, CharsetUtil.CHARSET_UTF_8);
}
}
@Data
@NoArgsConstructor
@AllArgsConstructor
class Man {
private String name;
private Integer age;
private List<String> hobbies;
}
{
"man": {
"name": "jingsong",
"age": 17,
"hobbies": [
"eat",
"sleep",
"fight doudou"
]
},
"map": {
"k3": "v3",
"k1": "v1",
"k2": "v2",
"k0": "v0"
},
"list": [
"heh",
"xix",
"hah"
]
}