2017-01-08 96 views
0

我使用ObjectMapper使用下面的代碼將我的對象映射到json字符串。然後將其添加到數組中。我怎樣才能更新已經添加的對象?我有一個唯一的ID對象。現在它被添加爲數組中的新條目。使用ObjectMapper映射到字符串的更新對象

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

爲什麼不將對象存儲在普通數組或集合中?然後,當你需要做一些修改只是數組/集合中更新的對象並重新創建整個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); 
相關問題