我使用ObjectMapper
使用以下代码将我的Object映射到json字符串。然后将其添加到数组中。如何更新已添加的对象?我有一个唯一的id对象。现在它被添加为数组中的新条目。
final JSONArray jArray = new JSONArray();
while(){
//some code here
ObjectMapper mapper = new ObjectMapper();
String jString;
try {
jString = mapper.writeValueAsString(myObject);
jArray.add(jString);
} catch (JsonProcessingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
实施例, 在数组myobject是
["{\"id\":\"25641\",\"name\":abc.....
现在如果名称发生变化,我必须更新它。当我添加对象时,它会像
那样重复["{\"id\":\"25641\",\"name\":abc.....
["{\"id\":\"25641\",\"name\":pqr.....
答案 0 :(得分:0)
为什么不将对象存储在普通数组或集合中?然后,当您需要进行一些修改时,只需更新数组/集合中的对象并重新创建整个JSONArray(如果需要)
更新(感谢mibrahim.iti):
例如使用
Map<Integer, Object> map = new HashMap<>();
map.put(500, objectOfId500);//this will replace old object with new one
map.values();//for retrieving all objects then using it in final mapping
所以最后这个方法应该是这样的:
Map<Integer, Object> map = new HashMap<>();
while(){
map.put(myObject.getId(), myObject);
}
Collection<Object> coll = map.values(); // Final objects which will be converted to JSON Array
final JSONArray jArray = createJSONArray(coll);