快上网专注成都网站设计 成都网站制作 成都网站建设
成都网站建设公司服务热线:028-86922220

网站建设知识

十年网站开发经验 + 多家企业客户 + 靠谱的建站团队

量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决

如何在Java中使用JSON-创新互联

这篇文章将为大家详细讲解有关如何在Java中使用JSON,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

为贺州等地区用户提供了全套网页设计制作服务,及贺州网站建设行业解决方案。主营业务为成都网站建设、成都做网站、贺州网站设计,以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。我们深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!

1. 常用的JSON转换

 JSONObject 转 JSON 字符串

JSONObject json = new JSONObject();
jsonObject.put("name", "test");
String str = JSONObject.toJSONString(json);

JSON字符串转JSON

String str = "{\"name\":\"test\"}";
JSONObject json = JSONObject.parseObject(str);

实体类转JSON

Test test = new Test();
test.setName("test");
String testStr = JSONObject.toJSONString(test);
JSONObject json = JSONObject.parseObject(testStr);

Map转JSON

JSONObject json = JSONObject.parseObject(JSON.toJSONString(map));

JSON转Map

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进行put和remove 比如明确需要哪些字段的时候可以定义一个数组用来存放key信息。存放和删除的时候只需要遍历数组就可以。

  • 遍历JSON,获取key,value再重新put

4.JSON遍历

定义一个工具类,获取key和value

if(object instanceof JSONObject) {
  JSONObject jsonObject = (JSONObject) object;
  for (Map.Entry entry: jsonObject.entrySet()) {
    Object o = entry.getValue();
    if(o instanceof String) {
      System.out.println("key:" + entry.getKey() + ",value:" + entry.getValue());
    } else {
      jsonLoop(o);
    }
  }
}
if(object instanceof JSONArray) {
  JSONArray jsonArray = (JSONArray) object;
  for(int i = 0; i < jsonArray.size(); i ++) {
    jsonLoop(jsonArray.get(i));
  }
}

JSONArray遍历的方式有很多种

for

for(int i = 0; i < jsonArray.size(); i++){
	JSONObject json = jsonArray.getJSONObject(i);
}

foreach

jsonArray.forEach(o -> {
  if (o instanceof JSONObject) {
    JSONObject json = (JSONObject) o;
  }

Iterator

JSONObject jsonObject = new JSONObject(jsonString);
Iterator iterator = jsonObject.keys();
while(iterator.hasNext()){
	key = (String) iterator.next();
	value = jsonObject.getString(key);
}

5.JSONPath

另外向大家推荐一个非常好用的工具:JSONPath。

JSONPath是一种简单的方法来提取给定JSON的部分内容,使用方式类似于正则表达式。 GitHub地址: https://github.com/json-path/JsonPath

简单描述下使用方法已经自己使用的案例 pom文件依赖:


  com.jayway.jsonpath
  json-path
  2.2.0

JsonPath表达式总是以与XPath表达式结合使用XML文档相同的方式引用JSON结构。

JsonPath中的“根成员对象”始终称为$,无论是对象还是数组。

JsonPath表达式可以使用点表示法。

这里有个表格,说明JSONPath语法元素和对应XPath元素的对比。

如何在Java中使用JSON

官方案例:

如何在Java中使用JSON

如何在Java中使用JSON

详细大家还是参照官方解说。 下面是我写的案例:

JSONArray jsonArray = JSONPath.read("$.ePrint.common..label");

如何在Java中使用JSON

需要注意的是这里的JSONArray是JSONPath的,所以导包是:net.minidev.json.JSONPath JSON格式不会变,所以可以转换为alibaba的JSONArray:

com.alibaba.fastjson.JSONArray jsonArr = JSON.parse(jsonArray.toString());

这里要注意一点也是我踩过的坑:如果获取一个JSONObject下有多个同名的JSONArray,那么返回的[]也是多个。要先遍历获取到的数据,在取其中的一个JSON块。

关于如何在Java中使用JSON就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。


本文题目:如何在Java中使用JSON-创新互联
本文链接:http://6mz.cn/article/copcid.html

其他资讯