我们已经返回的代码JsonObject
。我想要做的是添加一个新的密钥及其值。
例如,我们有一个这样的对象:
{"id":"12","name":"test"}
我想将其转化为:
{"id":"12","name":"test","status":"complete"}
除了使用put方法之外,我没有在文档中找到我需要的东西。所以我写了这段代码:
JsonObject object = getJsonObject();
JsonString val = new JsonString() {
public JsonValue.ValueType getValueType() {
return JsonValue.ValueType.STRING;
}
public String getString() {
return "complete";
}
public CharSequence getChars() {
return (CharSequence) "complete";
}
};
object.put("status", val);
但它不起作用,崩溃:
java.lang.UnsupportedOperationException
我无法理解什么是错的。我还有其他选择来完成这项任务吗?
答案 0 :(得分:1)
我不认为JsonObject
个实例需要修改。
我认为您最好的选择是创建一个新对象,复制现有属性并向其添加新属性。
您可以使用https://docs.oracle.com/javaee/7/api/javax/json/JsonObjectBuilder.html
答案 1 :(得分:0)
不确定object.put是否有效但您可以使用以下方法将详细信息附加到JSON值:
您可以使用要添加到JSON对象和用户org.json.JSONObject
的键和值创建不同的JSON对象
merge()检查密钥:' status'在你的JSON对象中,如果它找不到它,那么它会添加key:value对,否则它会替换它
。你无法编译它,因为你可能没有使用jre 1.8。
我刚验证了以下方法:
只需创建一个新的JSONObject(javax.json.JsonObject
而不是JSONObject modifiedJsonObject= new JSONObject(object.toString());
modifiedJsonObject.put("status", "complete");
)
{{1}}