首页 前端知识 JSONObject 使用对比 hutool、alibaba

JSONObject 使用对比 hutool、alibaba

2024-11-05 23:11:33 前端知识 前端哥 934 501 我要收藏

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")

转载请注明出处或者链接地址:https://www.qianduange.cn//article/20047.html
标签
评论
发布的文章
大家推荐的文章
会员中心 联系我 留言建议 回顶部
复制成功!