我有javax.json.JsonObject类中的现有jsonobject。
我一辈子都无法弄清楚如何修改其中的现有值。理想情况下,我想执行以下操作:
if(object.getString("ObjectUUID").length()==0){
object.put("ObjectUUID", UUID.randomUUID().toString());
}
根据API,您不允许修改该地图。
http://docs.oracle.com/javaee/7/api/javax/json/JsonObject.html
此地图对象提供对JSON对象数据的只读访问,并尝试直接或通过其集合视图修改地图,从而导致UnsupportedOperationException。
目前,我正在通过快速破解解决问题,但是必须有一个比这更好的解决方案:
if(object.getString("ObjectUUID").length()==0){
JsonObjectBuilder job = Json.createObjectBuilder();
job.add("ObjectUUID", UUID.randomUUID().toString());
for(String key : object.keySet()){
if(!key.equals("ObjectUUID")){
job.add(key, object.get(key));
}
}
object = job.build();
}
那么问题是如何修改现有的jsonobject?
obj.addProperty("Id", "001");
System.out.println("Before: " + obj.get("Id")); // 001
obj.addProperty("Id", "002");
System.out.println("After: " + obj.get("Id")); // 002
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句