Java Map、JSONObject、实体类互转


前言

使用库 com.alibaba.fastjson2,可完成大部分JSON转换操作。

详情参考文章: Java FASTJSON2 一个性能极致并且简单易用的JSON库


Map、JSONObject、实体类互转

import com.alibaba.fastjson2.JSON;
import com.alibaba.fastjson2.JSONObject;
import lombok.Data;

import java.util.HashMap;
import java.util.Map;

public class Test {
    
    
    public static void main(String[] args) {
    
    
        // map集合转Java实体类
        Map<String, Object> map = new HashMap<>();
        map.put("id", 123456);
        map.put("name", "张三");
        User user = JSON.parseObject(JSON.toJSONString(map), User.class);
        System.out.println(user); // User(id=123456, name=张三)

        // Java实体类转为Map集合
        Map map1 = JSON.parseObject(JSON.toJSONString(user), Map.class);
        System.out.println(map1); // {name=张三, id=123456}

        // Java实体类转JSONObject
        JSONObject jsonObject = (JSONObject) JSON.toJSON(user);
        System.out.println(jsonObject); // {"name":"张三","id":123456}

        // JSONObject转Java实体类
        User user1 = jsonObject.toJavaObject(User.class);
        System.out.println(user1); // User(id=123456, name=张三)

        // String转JSONObject
        JSONObject jsonObject1 = JSONObject.parseObject(jsonObject.toString());
        System.out.println(jsonObject1); // {"id":123456,"name":"张三"}

        // JSONObject转String
        String string = JSON.toJSONString(jsonObject);
        System.out.println(string); // {"id":123456,"name":"张三"}

        // String转JSONObject
        JSONObject jsonObject2 = JSON.parseObject(string);
        System.out.println(jsonObject2); // {"id":123456,"name":"张三"}

        // map集合转JSONObject
        JSONObject jsonObject3 = JSON.parseObject(JSON.toJSONString(map), JSONObject.class);
        System.out.println(jsonObject3); // {"name":"张三","id":123456}

        // JSONObject转为Map集合
        Map map2 = JSON.parseObject(jsonObject.toString(), Map.class);
        System.out.println(map2); // {name=张三, id=123456}
    }
}

@Data
class User {
    
    
    private Integer id;
    private String name;
}

猜你喜欢

转载自blog.csdn.net/xiaohuihui1400/article/details/132360258