[英]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.