繁体   English   中英

Jersey JSON处理:将键值对添加到JsonObject

[英]Jersey JSON-Processing: add key-value pair to JsonObject

我正在使用Jersey实现在Java中创建Restful Web服务。 为了处理Json,我正在使用“用于JSON处理的Java API(JSON-P)”。

JsonObject内部,已经有几个条目了,我想添加一个新条目(键值对)。

我找不到添加新条目(键值对)的直接方法。

我可以创建一个新JsonObject ,穿越古老JsonObject和其复制所有的值到新JsonObject并添加新的新条目JsonObject 但是,有没有直接的方法可以向JsonObject添加新条目?

这是代码,

     JsonObject myJsonObject = Json.createObjectBuilder()
    .add("key1", "value1")
    .add("key2", "value2")
    .build();

如何在同一个myJsonObject添加一个条目?

恐怕没有简单的方法了…… JsonObject是不可变的,因此您不能直接对其进行修改。 因此,您将需要创建一个新的JsonObjectBuilder来创建另一个。 如果您的对象看起来像这样:

 JsonObject myJsonObject = Json.createObjectBuilder()
.add("key1", "value1")
.add("key2", "value2")
.build();

您可以执行以下操作:

JsonObjectBuilder builder = new JsonObjectBuilder();

for(Entry<String, JsonValue> entry : myJsonObject.entrySet()) {
  builder.add(entry.getKey(), entry.getValue());
}

// modify key
builder.add("key1", "differentValue");
// add key
builder.add("key3", "newValue");

JsonObject newObject = builder.build();

但是我想拥有一个方便的构造函数new JsonObjectBulder(existingJsonObject)来摆脱循环是一件好事...

编辑:作为替代方案,您可以研究制图技术

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM