java 解析json
1. 使用 alibaba 的 fastJson
添加依赖或者jar
fastJson 简单使用
JSON > Java对象
java对象 > json
w3c的 API 连接:https://www.w3cschool.cn/fastjson/fastjson-api.html
public class MyJson { public static String jsonmap = "{\"001\":{\"name\":\"xiaohong\",\"password\":\"654321\"},\"002\":[{\"$ref\":\"$.001\"},{\"name\":\"xixi\",\"password\":\"789\"}]}"; public static String jsonuser = "{\"name\":\"xiaohong\",\"password\":\"654321\"}"; public static String jsonlist = "[{\"name\":\"xiaohong\",\"password\":\"654321\"},{\"name\":\"xixi\",\"password\":\"789\"}]"; public static void main(String[] args) { User user = new User(); user.setName("xiaohong"); user.setPassword("654321"); List<User> list = new ArrayList<User>(); list.add(user); list.add(new User("xixi","789")); Map map = new HashMap(); map.put("001",user); map.put("002",list); // 1. json字符串 转换为 java 对象 // toJsonString - java对象转换为json字符串 System.out.println(JSONObject.toJSONString(user)); System.out.println(JSONObject.toJSONString(list)); System.out.println(JSONObject.toJSONString(map)); // toJavaObject - json字符串转换为java对象 System.out.println(JSONObject.parseObject(jsonuser,User.class)); List list1 = JSONObject.parseObject(jsonlist, List.class); for(int i=0;i<list1.size();i++) { System.out.println(JSONObject.parseObject(JSONObject.toJSONString(list1.get(i)),User.class)); } Map map1 = JSONObject.parseObject(jsonmap, Map.class); Iterator iterator = map1.entrySet().iterator(); while (iterator.hasNext()) { Map.Entry entry= (Map.Entry) iterator.next(); System.out.println("key :"+entry.getKey()+" value: " + entry.getValue()); } // Json -- 实体类转换为json字符串 System.out.println(JSON.toJSONString(user)); System.out.println(JSON.toJSONString(list)); System.out.println(JSON.toJSONString(map)); // json -- json 转 java对象 System.out.println(JSON.parseObject(jsonuser,User.class)); List list2 = JSON.parseObject(jsonlist, List.class); for(int i=0;i<list2.size();i++) { System.out.println(JSON.parseObject(JSON.toJSONString(list1.get(i)),User.class)); } Map map2 = JSON.parseObject(jsonmap, Map.class); Iterator iterator2 = map1.entrySet().iterator(); while (iterator2.hasNext()) { Map.Entry entry= (Map.Entry) iterator2.next(); System.out.println("key :"+entry.getKey()+" value: " + entry.getValue()); } } }
jackson :
使用:
入门连接:https://blog.csdn.net/mashangyou/article/details/24271001
测试json
public class Myjackson { public static String jsonmap = "{\"001\":{\"name\":\"xiaohong\",\"password\":\"654321\"},\"002\":[{\"$ref\":\"$.001\"},{\"name\":\"xixi\",\"password\":\"789\"}]}"; public static String jsonuser = "{\"name\":\"xiaohong\",\"password\":\"654321\"}"; public static String jsonlist = "[{\"name\":\"xiaohong\",\"password\":\"654321\"},{\"name\":\"xixi\",\"password\":\"789\"}]"; public static void main(String[] args) throws IOException { // 创建 objectMapper ObjectMapper mapper = new ObjectMapper(); // 读取树模型 mapper.readTree 相当于 把 json 读取为一个json树 JsonNode jsonNode = mapper.readTree(jsonmap); // 获取 001 JsonNode path001 = jsonNode.path("001"); System.out.println(path001); System.out.println(path001.path("name")); System.out.println(path001.findPath("password")); // json > java对象 User user = mapper.readValue(jsonuser, User.class); System.out.println("user ==" + user); System.out.println(mapper.readValue(jsonlist, List.class)); System.out.println(mapper.readValue(jsonmap,Map.class)); // java对象 》 json String s = mapper.writeValueAsString(user); System.out.println(s); } }
还可以将 json 输入到 文件中
Gson:
package com.xiaodu.json; import com.google.gson.Gson; import com.google.gson.JsonArray; import com.google.gson.JsonObject; import com.xiaodu.model.User; import java.util.List; import java.util.Map; /** * @author du_tian_jie * @version v1.0 * @date * @desc: */ public class MyGson { public static String jsonmap = "{\"001\":{\"name\":\"xiaohong\",\"password\":\"654321\"},\"002\":[{\"$ref\":\"$.001\"},{\"name\":\"xixi\",\"password\":\"789\"}]}"; public static String jsonuser = "{\"name\":\"xiaohong\",\"password\":\"654321\"}"; public static String jsonlist = "[{\"name\":\"xiaohong\",\"password\":\"654321\"},{\"name\":\"xixi\",\"password\":\"789\"}]"; public static void main(String[] args) { // json >java Gson gson = new Gson(); User user = gson.fromJson(jsonuser, User.class); System.out.println(user); System.out.println(gson.fromJson(jsonlist, List.class)); System.out.println(gson.fromJson(jsonmap,Map.class)); // java > json String json = gson.toJson(new User("小红", "1212")); System.out.println(json); // jsonObject 对象使用(使用jsonObject 对象) JsonObject jsonObject = new JsonObject(); jsonObject.addProperty("name","小王"); jsonObject.addProperty("password","7890000"); JsonArray jsonArray = new JsonArray(); jsonArray.add(jsonObject); jsonArray.add(jsonObject); // 添加两个 一模一样的 -- 懒 System.out.println(jsonArray.toString()); } }
*****************************************************************************