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

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

Maven

<dependency>
	<groupId>com.alibaba</groupId>
	<artifactId>fastjson</artifactId>
	<version>2.0.2</version>
</dependency>

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<String,Object> 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<Map> listMaps = JSONArray.parseArray(JSON.toJSONString(data),Map.class);
List<Map> 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<User> userList = JSON.parseArray(JSON.toJSONString(jsonArray),User.class);

总结:

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

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

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

  • 0
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值