JSONObject 使用对比 hutool、alibaba

8,577次阅读
没有评论

共计 1370 个字符,预计需要花费 4 分钟才能阅读完成。

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

原文地址: JSONObject 使用对比 hutool、alibaba

    正文完
     0
    Yojack
    版权声明:本篇文章由 Yojack 于2024-11-10发表,共计1370字。
    转载说明:
    1 本网站名称:优杰开发笔记
    2 本站永久网址:https://yojack.cn
    3 本网站的文章部分内容可能来源于网络,仅供大家学习与参考,如有侵权,请联系站长进行删除处理。
    4 本站一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责。
    5 本站所有内容均可转载及分享, 但请注明出处
    6 我们始终尊重原创作者的版权,所有文章在发布时,均尽可能注明出处与作者。
    7 站长邮箱:laylwenl@gmail.com
    评论(没有评论)