介绍
这篇文章将为大家详细讲解有关如何在Java中使用JSON,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。
1。常用的JSON转换
, JSONObject转JSON字符串
JSONObject json =, new JSONObject (); jsonObject.put (“name",,“test"); String str =, JSONObject.toJSONString (json);
json字符串转json
String str =,“{\“\“名称:\“测试\“}”; JSONObject json =, JSONObject.parseObject (str);
实体类转JSON
Test Test =, new 测试(); test.setName (“test"); String testStr =, JSONObject.toJSONString(测试); JSONObject json =, JSONObject.parseObject (testStr);
地图转JSON
JSONObject json =, JSONObject.parseObject (JSON.toJSONString(地图));
JSON转地图
Map jsonToMap =, JSONObject.parseObject (jsonObject.toJSONString ());
2。将多个JSON合并一个
JSONObject totalJSON =, new JSONObject (); totalJSON.putAll (json1); totalJSON.putAll (json2);
<代码> json1, json2> 代码为JSONObject。最终的代码格式:
{ ,json1: {}, ,json2: {} }
3。JSON拆分
不同的需求有不同的做法,以下提供两种解决思路
- <李>
定义两个或多个JSON进行把和删除比如明确需要哪些字段的时候可以定义一个数组用来存放关键信息。存放和删除的时候只需要遍历数组就可以。
李> <李>遍历JSON,获取钥匙,价值再重新把
李>4。JSON遍历
定义一个工具类,获取键和值
如果(object instanceof  JSONObject), { JSONObject 才能;JSONObject =, (JSONObject),对象; for 才能;(Map.Entry<字符串,Object>,条目:,jsonObject.entrySet ()), { ,,,Object o =, entry.getValue (); ,,,如果(o instanceof 字符串),{ ,,,,,System.out.println(“关键:“,+,entry.getKey(), +,“,价值:“,+,entry.getValue ()); ,,,},{else ,,,,,jsonLoop (o); ,,,} ,,} } 如果(JSONArray object instanceof ), { JSONArray 才能;JSONArray =,(获取),对象; ,,(int 小姐:=,0;,小姐:& lt;, jsonArray.size();,小姐:+ +),{ ,,,jsonLoop (jsonArray.get(我)); ,,} JSONArray}
遍历的方式有很多种
为(int 小姐:=,0;,小姐:& lt;, jsonArray.size();,我+ +){ JSONObject json =, jsonArray.getJSONObject(我); }
foreach
jsonArray.forEach (o →, { if 才能;(o instanceof  JSONObject), { ,,,JSONObject json =, (JSONObject), o; 以前,,}>迭代器
JSONObject JSONObject =, new JSONObject (jsonString); Iterator Iterator =, jsonObject.keys (); 而(iterator.hasNext ()) { key =,(字符串),iterator.next (); 时间=value jsonObject.getString(关键); }5。JSONPath
另外向大家推荐一个非常好用的工具:JSONPath。
JSONPath是一种简单的方法来提取给定JSON的部分内容,使用方式类似于正则表达式。GitHub地址:https://github.com/json-path/JsonPath
简单描述下使用方法已经自己使用的案例pom文件依赖:
& lt; dependency> & lt;才能groupId> com.jayway.jsonpath</groupId> & lt;才能artifactId> json-path</artifactId> & lt;才能version> 2.2.0</version> & lt;/dependency>JsonPath表达式总是以与XPath表达式结合使用XML文档相同的方式引用JSON结构。
JsonPath中的“根成员对象“始终称为美元,无论是对象还是数组。
JsonPath表达式可以使用点表示法。
这里有个表格,说明JsonPath语法元素和对XPath元应素的对比。
官方案例:
,
,
详细大家还是参照官方解说。下面是我写的案例:
JSONArray JSONArray =, JSONPath.read (“.ePrint.common . . label"美元);如何在Java中使用JSON