千家信息网

怎么使用fastjson

发表于:2025-02-03 作者:千家信息网编辑
千家信息网最后更新 2025年02月03日,本篇内容介绍了"怎么使用fastjson"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!JSONObj
千家信息网最后更新 2025年02月03日怎么使用fastjson

本篇内容介绍了"怎么使用fastjson"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

JSONObject的方法

包名: com.alibaba.fastjson maven依赖:

        com.alibaba        fastjson        1.2.7

JSONObject的使用

将字符串转换成JSONObject对象

        String str = "{\"desc\":\"json格式的字符串\",\"sex\":\"男\"}";        JSONObject jo = JSONObject.parseObject(str);

JSONObject可以将极其复杂的json对象转换,下面的json语句也可以转换,并通过相应方法获得对应的值

{    "protocol":{        "itemID":"9527",        "companyID":"4399",        "userID":"233"    },    "operateInfo":{        "cooptaskSceneDataPackets":[            {                "taskID":"123",                "runSceneID":"345",                "dataTagCode":"反对",                "dataTagID":"",                "dataTagName":"是的",                "dataTagBelongOrg":""            },            {                "taskID":"126",                "runSceneID":"345",                "dataTagCode":"",                "dataTagID":"",                "dataTagName":"是的",                "dataTagBelongOrg":""            },            {                "taskID":"123",                "runSceneID":"345",                "dataTagCode":"无法",                "dataTagID":"十五日",                "dataTagName":"是的",                "dataTagBelongOrg":"五七二"            },            {                "taskID":"124",                "runSceneID":"235",                "dataTagCode":"",                "dataTagID":"",                "dataTagName":"",                "dataTagBelongOrg":""            }        ]    }}

将String对象转换成实体类

使用JSONObject.parseObject(String text, Class clazz)

  String str ="{\"itemID\":\"9527\",\"companyID\":\"4399\",\"userID\":\"233\"}";        EntityProtocol entityProtocol = JSONObject.parseObject(str, EntityProtocol.class);

如果类型不匹配则会创建所有属性均为null的该实体类。

向JSONObject对象添加或者修改属性

使用.put(key,value)方法
若key参数在原对象中没有则在原对象中新增key属性并赋值为value;
若key参数存在则更改key的值为value;

      //JSONObject.put(String key,Object value);        jo.put("key","value");        jo.put("sex","修改");

JSONObject.putAll(Map m) 方法的使用

经测试发现参数可以为JSONOBject,其逻辑为将参数json的属性及其值依次put到原json对象中

   String str = "{\"name\":\"测试\",\"sex\":\"男\"}";         JSONObject jo = JSONObject.parseObject(str);         String str2 = "{\"name\":\"我是\",\"age\":\"13\"}";         JSONObject jo2 = JSONObject.parseObject(str2);         jo.putAll(jo2);         //运行完成后jo为:         //{"sex":"男","name":"我是","age":"13"}

JSONArray的使用

JSONArray对象添加元素

使用JSONArray.add(Object e)
只是简单的将元素e添加到JSONArray数组中,既不校验e元素是否已存在于原数组中,也不校验e元素是否跟元素组格式相同

        String str = "{\"name\":\"测试\",\"sex\":\"男\"}";        JSONArray ja = new JSONArray();        ja.add(str);        JSONObject jo = JSONObject.parseObject("{\"name\":\"第二个\",\"age\":\"24\"}");        ja.add(jo);        System.out.println(ja);        //结果为: ["{\"name\":\"测试\",\"sex\":\"男\"}",{"name":"第二个","age":"24"}]          JSONObject jo1 = JSONObject.parseObject(str);        ja.add(jo1);        System.out.println(ja);        //结果为: ["{\"name\":\"测试\",\"sex\":\"男\"}",{"name":"第二个","age":"24"},{"sex":"男","name":"测试"}]

获取JSONArray中某一元素

  • JSONArray.get(int index),JSONArray.getString(int index),JSONArray.getJSONObject(int index)
    这些方法运行正常

  • JSONArray.getByte(int index),JSONArray.getByteValue(int index)
    这些方法运行报错,没深究过为什么,估计是string不能转换成byte类型

    System.out.println(ja.get(1));        System.out.println(ja.getString(1));        System.out.println(ja.getJSONObject(1));        //System.out.println(ja.getByte(1)); can not cast to byte, value        //System.out.println(ja.getByteValue(1)); can not cast to byte, value

"怎么使用fastjson"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!

0