【发布时间】:2021-08-20 13:03:14
【问题描述】:
我需要修改使用javax.json.JsonObject 和javax.json.JsonArray 库来处理JSON 的现有旧代码。由于这些是接口,所以我不能像过去在 JSON.simple 库的帮助下那样创建新对象并在 for 循环中添加所需的数据。
我需要创建一个包含不同 JsonObjects 但最终输出仅包含最后一个 JsonObject 的 JsonArray。代码如下:
import javax.json.JsonArray;
import javax.json.JsonObject;
class Test {
public void myMethod() {
Map<String, String> ep = null;
JsonArray response = null;
JsonObject epObj = null;
JsonObject epDetails = null;
try {
ep = getRequiredEp();
if (ep != null && !ep.isEmpty()) {
for (String uuid : ep.keySet()) {
ERU router = ERU.findByNFuuid(em, uuid);
if (router != null) {
ERD unit = router.findCurrent(em);
epDetails = Json.createObjectBuilder()
.add("name", ep.get(uuid))
.add("devId", unit.unit.getId())
.add("clientId", unit.store.id).build();
epObj = Json.createObjectBuilder()
.add(uuid, epDetails).build();
response = Json.createArrayBuilder()
.add(epObj).build();
}
}
logger.info("FINAL RESPONSE = {}", response);
}
} catch (Exception e) {
logger.info(e.getMessage(), e);
}
}
}
我的 JsonObject 包含两个对象。但是当我打印最终响应时,它只给出最后一个对象。请建议如何在 JsonArray 中添加两个对象。
【问题讨论】: