本篇内容介绍了“怎么使用fastjson”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
包名: com.alibaba.fastjson maven依赖:
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.7</version>
</dependency>
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":""
}
]
}
}
使用JSONObject.parseObject(String text, Class<T> clazz)
String str ="{\"itemID\":\"9527\",\"companyID\":\"4399\",\"userID\":\"233\"}";
EntityProtocol entityProtocol = JSONObject.parseObject(str, EntityProtocol.class);
如果类型不匹配则会创建所有属性均为null的该实体类。
使用.put(key,value)方法
若key参数在原对象中没有则在原对象中新增key属性并赋值为value;
若key参数存在则更改key的值为value;
//JSONObject.put(String key,Object value);
jo.put("key","value");
jo.put("sex","修改");
经测试发现参数可以为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.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.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”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注亿速云网站,小编将为大家输出更多高质量的实用文章!
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。
原文链接:https://my.oschina.net/imsorry/blog/3118500