2013-12-13 16 views
5

Tôi đang làm việc trên các đối tượng Json trong java !. Tôi có các đối tượng 2 json như sau:Thêm 2 đối tượng json theo các khóa trong java

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

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

Tôi muốn tạo ra một đối tượng json duy nhất là:

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

Làm thế nào tôi nên hợp nhất 2 đối tượng để đạt được kết quả trên?

+0

JSON được thể hiện bằng Java như thế nào? Họ là dây? Bạn đã sử dụng thư viện chưa? – robbmj

+0

bạn nên kiểm tra http://stackoverflow.com/questions/2403132/concat-multiple-jsonobjects này –

Trả lời

1

Cách đơn giản là để tạo ra danh sách và vòng hơn hai đối tượng:

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) { 
    } 
} 

Output:

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

Chuyển đổi các đối tượng JSON vào từ điển bằng [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:&error]; và sau đó thực hiện thao tác một cách dễ dàng.

Các vấn đề liên quan