JSONObject 使用对比 hutool、alibaba

A JSONObject text must begin with ‘{‘ at 1 [character 2 line 1]

出现这个异常的原因是json串格式不正常,没有"{"开始或没有"}"结尾

json文件头里带有编码字符(如UTF-8等),读取字符串时json串是正常的,但是解析就有异常。

JSONObject

第一种 cn.hutool.json.JSONObject;

第二种 com.alibaba.fastjson.JSONObject;

在使用JSON序列化工具的时候,尽量不要混合使用,即使存在多个JSON工具,也不把一个JSON工具的JSON对象直接用另一个JSON工具来处理,因为每个JSON工具都有自己的对JSON的处理,包括一些优化。

第一种 cn.hutool.json.JSONObject:

String jsonStr = "{\"b\":\"value2\",\"c\":\"value3\",\"a\":\"value1\"}";


//JSON字符串转换成JSON对象 方法一:使用工具类转换
JSONObject jsonObject = JSONUtil.parseObj(jsonStr);
// JSON字符串转换成JSON对象 方法二:new的方式转换
JSONObject jsonObject2 = new JSONObject(jsonStr);

//获取json里的某个值 
String mouziduan = jsonObject.getStr("mouziduan")

//JSON对象转字符串(一行)
String jsonString  = jsonObject.toString();

//JSON对象转换成Java对象
User user = JSONUtil.toBean(jsonString, User.class);


// Java对象转为JSON对象 false表示不跳过空值
JSONObject json = JSONUtil.parseObj(User, false);

// Java对象转为JSON对象 第二个参数表示保持有序
JSONObject json = JSONUtil.parseObj(User, false, true);

第二种 com.alibaba.fastjson.JSONObject:

//Java对象转换成JSON字符串
String userString = JSONObject.toJSONString(user );

//JSON对象转换为JSON字符串
String jsonString = jsonObject.toJSONString();

//Java对象先转成JSON对象 
JSONObject jsonObject = (JSONObject) JSONObject.toJSON(user );
        
//JSON对象转换成Java对象
User user = JSONObject.toJavaObject(jsonObject, User.class);

//JSON字符串转换成JSON对象
JSONObject jsonObject1 = JSONObject.parseObject(userString );

//获取json里的某个值 
String mouziduan = jsonObject1.getString("mouziduan")

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值