栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

fastJson json与对象、集合、数组相互转换

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

fastJson json与对象、集合、数组相互转换

fastjson是阿里巴巴的开源JSON解析库,它可以解析JSON格式的字符串,支持将Java Bean序列化为JSON字符串,也可以从JSON字符串反序列化到JavaBean。

Maven


	com.alibaba
	fastjson
	2.0.2

Fastjson版本<= 1.2.68有反序列化漏洞,建议使用最新版本。

Fastjson<= 1.2.68远程代码执行漏洞预警

 1.对象转json字符串

String json = JSON.toJSONString(user); //序列化

2.json字符串转对象

User user  = JSON.parseObject(json,User.class);//反序列化

3.jsonObject(json对象)转对象

User user = JSON.toJavaObject(jsonObject,User.class);

4.对象转jsonObject

JSONObject jsonObject = (JSONObject)JSON.toJSON(User);

         源码:

public static Object toJSON(Object javaObject) {
        if (javaObject instanceof JSON) {
            return javaObject;
        } else {
            String str = toJSONString(javaObject);
            Object object = parse(str);
            return object instanceof List ? new JSONArray((List)object) : object;
        }
    }

         通过源码的else代码块可以看出,先将对象转为json字符串,然后在转为Object对象。

         同以下代码一样:

//先将对象转成字符串
String json = JSON.toJSONString(user);
//将json字符串转json对象
JSONObject jsonObject = JSONObject.parseObject(json);

        jsonObject获取值:

int id = jsonObject.getIntValue("id);
String name = jsonObject.getString("name);

5.json转Map

Map map = JSONObject.parseObject(json,Map.class);

        json转Map和json转对象一样。map也是一个对象。

        JSONObject 继承了JSON,所以这里用JSON.parseObject()与JSONObject.parseObject()的作用一样

  User user = JSON.parseObject(json,User.class);

  User user = JSONObject.parseObject(json,User.class);

6.map转json对象

JSONObject jsonObject = JSONObject.parseObject(JSON.toJSONString(map));

        map转json对象与对象转json对象一样,同标题4。也是先将map对象转为json字符串,然后再转为jsonObject对象 

7.json数组转list

List listMaps = JSONArray.parseArray(JSON.toJSONString(data),Map.class);
List mapsList = JSONObject.parseArray(JSON.toJSONString(data), Map.class);

 8.jsonObject转jsonString

String jsonString = JSON.toJSONString(jsonObject);

 9.jsonString转jsonObject

JSONObject jsonObject = JSON.parseObject(jsonString);

 10.jsonString转jsonArray

JSONArray jArray=JSON.parseArray(JSON.toJSONString(userListJson));

 11.jsonArray转list对象

List userList = JSON.parseArray(JSON.toJSONString(jsonArray),User.class);

总结:

1. 对象、集合、数组、map转json之前,都要先转为json字符串。

2. json之间的转换也是先把要转换的数据转换为json字符串再做转换。

3. json转对象、list对象要指明转换的javaBean(user.class)。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/877057.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号