json 和java对象 互相转换(java)

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 :

扫描二维码关注公众号,回复: 3199379 查看本文章

使用:

入门连接: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());


    }
}

*****************************************************************************

猜你喜欢

转载自blog.csdn.net/xiaodujava/article/details/82190618
今日推荐