求java合并json数据的代码

Python015

求java合并json数据的代码,第1张

我想了一下,但是得有一个前提,就是第一个json数组的size必须和第二个json数组的size相同,并且一一对应,否则将造成数组溢出。

如果是基于上面这个前提,那么实现的方法就简单了。

操作json对象,其实标准的方法是将实体类转换成json后再操作,我这里的话为了便捷直接使用谷歌的Gson来创建JsonObject了,其他的json依赖还有阿里巴巴的FastJson等等,看你平时用什么习惯。

引入Gson依赖:

<dependency>

<groupId>com.google.code.gson</groupId>

<artifactId>gson</artifactId>

<version>2.8.0</version>

</dependency>

实现代码:

public class Main {

public static void main(String[] args) {

JsonArray jsonArray1 = new JsonArray()

JsonObject json11 = new JsonObject()

json11.addProperty("数据1", "0000")

json11.addProperty("数据2", "1111")

JsonObject json12 = new JsonObject()

json12.addProperty("数据1", "0000")

json12.addProperty("数据2", "1111")

JsonObject json13 = new JsonObject()

json13.addProperty("数据1", "0000")

json13.addProperty("数据2", "1111")

jsonArray1.add(json11)

jsonArray1.add(json12)

jsonArray1.add(json13)

System.out.println(jsonArray1)

JsonArray jsonArray2 = new JsonArray()

JsonObject json21 = new JsonObject()

json21.addProperty("数据3", "6666")

JsonObject json22 = new JsonObject()

json22.addProperty("数据3", "6666")

JsonObject json23 = new JsonObject()

json23.addProperty("数据3", "6666")

jsonArray2.add(json21)

jsonArray2.add(json22)

jsonArray2.add(json23)

System.out.println(jsonArray2)

//遍历json数组,按位取出对象

for (int i = 0i <jsonArray1.size()i++) {

JsonObject json1 = jsonArray1.get(i).getAsJsonObject()

JsonObject json3 = jsonArray2.get(i).getAsJsonObject()

//遍历数据3内容,通过Entry获取数据3的key和value,并合并到数据1中

for (Map.Entry<String, JsonElement>item : json3.entrySet()) {

json1.addProperty(item.getKey(), item.getValue().getAsString())

}

}

System.out.println(jsonArray1)

}

}

整体思路为:遍历两个json数组,按位进行合并操作。合并时,遍历数据3的jsonObject,获取其key和value,并将其合并到数据1中即可。

运行结果:

java foreach能对jsonarray进行遍历。foreach 语句为数组或对象集合中的每个元素重复一个嵌入语句组。foreach 语句用于循环访问集合以获取所需信息,但不应用于更改集合内容以避免产生不可预知的副作用。

拓展:

1、Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。

2、Java是由Sun Microsystems公司推出的Java面向对象程序设计语言(以下简称Java语言)和Java平台的总称。由James Gosling和同事们共同研发,并在1995年正式推出。Java最初被称为Oak,是1991年为消费类电子产品的嵌入式芯片而设计的。1995年更名为Java,并重新设计用于开发Internet应用程序。

正常的玩法应该是这样, 因为 ObjectMapper 有各种配置, 可以更好的实现转换, 比如 解析数据顺序, 忽略错误字段 等等 高端大气上档次的东西, 你的方法已经被时代淘汰了。

ObjectMapper objectMapper = new ObjectMapper()

Map map = objectMapper.readValue(resultStr,LinkedHashMap.class)