首页 > 解决方案 > 我可以使用 for 循环通过 Json.createObjectBuilder 构建 JsonObject 吗?

问题描述

我正在尝试使用来自不同现有 JsonObjects 的一些值构建一个新的 JsonObject。我想将值的名称存储在例如单独的文件中,字符串...

JsonObject object1 = ...;
JsonObject object2 = ...;
String [] names1 = { ... };
String [] names2 = { ... };

JsonObject newObject = Json.createObjectBuilder()
.add(names1[0], object1.getString(names1[0]))
.add(names1[1], object1.getString(names1[1]))
...
.add(names2[0], object2.getString(names2[0]))
.add(names2[1], object2.getString(names2[1]))
...
.build();

我可以改为使用两个 foreach 循环将名称和值添加到 newObject 吗?这将允许我更改必须添加的名称和字段。

标签: java

解决方案


是的,您可以这样做,只需保留JsonObjectBuilder对象:

JsonObject object1 = ...;
JsonObject object2 = ...;
String [] names1 = { ... };
String [] names2 = { ... };

JsonObjectBuilder builder = Json.createObjectBuilder();
for(String name: names1)
  builder.add(name, object1.getString(name));
for(String name: names2)
  builder.add(name, object2.getString(name));
JsonObject newObject = builder.build();

推荐阅读