2013-12-13 41 views
5

我正在使用java中的Json對象!我有2個JSON對象如下:根據java中的鍵添加2個json對象

{"a":{"num1":5},"b":{"num1":8}} 

{"a":{"num2":7},"b":{"num2":9}} 

我想創建一個JSON對象爲:

{"a":{"num1":5,"num2":7},"b":{"num1":8,"num2":9}} 

我應該怎麼合併2個對象,以實現上述結果呢?

+0

JSON是如何在Java中表示的?他們是字符串嗎?你已經在使用圖書館了嗎? – robbmj

+0

你應該檢查這個http://stackoverflow.com/questions/2403132/concat-multiple-jsonobjects –

回答

1

簡單的方法是在兩個對象來創建列表和循環:

public static void main(String[] args) { 
    String str1 = "{\"a\":{\"num1\":5},\"b\":{\"num1\":8}}"; 
    String str2 = "{\"a\":{\"num2\":7},\"b\":{\"num2\":9}}"; 

    try { 
     JSONObject str1Json = new JSONObject(str1); 
     JSONObject str2Json = new JSONObject(str2); 

     List<JSONObject> list = Arrays.asList(str1Json, str2Json); 

     JSONObject storage = new JSONObject(); 
     JSONObject storageA = new JSONObject(); 
     JSONObject storageB = new JSONObject(); 
     JSONObject a; 
     JSONObject b; 
     JSONObject obj; 

     for(int i=1; i<= list.size(); i++){ 

      obj = list.get(i-1); 

      a = obj.getJSONObject("a"); 
      b = obj.getJSONObject("b"); 

      storageA.put("num"+i, a.getInt("num"+i)); // we don't want build list    
      storageB.put("num"+i, b.getInt("num"+i));    
     } 

     storage.put("a", storageA); 
     storage.put("b", storageB); 

     System.out.println(storage.toString()); 
    } catch (JSONException e1) { 
    } 
} 

輸出:

{"b":{"num2":9,"num1":8},"a":{"num2":7,"num1":5}} 
0

轉換的JSON對象爲使用[NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:&error];字典,然後輕鬆地進行操作。

相關問題