2009-07-08 42 views
9

Tôi có hai đối tượng JSON. Một là mảng python được chuyển đổi bằng cách sử dụng json, dumps() và khác chứa các bản ghi từ cơ sở dữ liệu và được tuần tự hóa bằng cách sử dụng json serializer. Tôi muốn kết hợp chúng thành một đối tượng JSON.Kết hợp hai đối tượng JSON vào một

Đối với ví dụ:

obj1 = ["a1", "a2", "a3"] 

obj2 = [ 
    { 
     "pk": "e1", 
     "model": "AB.abc", 
     "fields": { 
      "e_desc": "abcd" 
     } 
    }, 
    { 
     "pk": "e1", 
     "model": "AB.abc", 
     "fields": { 
      "e_desc": "hij" 
     } 
    }, 

] 

Tôi muốn kết hợp chúng thành đối tượng duy nhất như sau:

finalObj = { 
       obj1:["a1", "a2", "a3"], 
       obj2: [ 
         { 
          "pk": "e1", 
          "model": "AB.abc", 
          "fields": { 
          "e_desc": "abcd" 
           } 
         }, 
         { 
           "pk": "e1", 
           "model": "AB.abc", 
           "fields": { 
           "e_desc": "hij" 
           } 
          }, 

        ] 
      } 

Làm thế nào tôi có thể làm điều này?

+0

typeof (finalObj.obj2) trở lại trên máy khách là chuỗi. Để lấy lại đối tượng JSON, hãy sử dụng JSON.parse (finalObj) –

Trả lời

15

Bạn không thể làm điều đó khi chúng ở định dạng JSON - JSON chỉ là văn bản. Bạn cần phải kết hợp chúng bằng Python đầu tiên:

data = { 'obj1' : obj1, 'obj2' : obj2 } 
json.dumps(data) 
5

Không chắc chắn nếu tôi là thiếu một cái gì đó, nhưng tôi nghĩ rằng công trình này (thử nghiệm trong python 2.5) với sản lượng bạn chỉ định:

import simplejson 

finalObj = { 'obj1': obj1, 'obj2': obj2 } 
simplejson.dumps(finalObj) 
0

bạn có hai kỹ thuật. Phiên bản danh sách bị hạn chế mà thứ tự quan trọng. Tuy nhiên, JSON trông hơi đơn giản hơn. Phiên bản từ điển có dữ liệu lồng nhau, trông phức tạp hơn.

data = { 'obj1' : obj1, 'obj2' : obj2 } 
json.dumps(data,indent=2) 


data = [ obj1, obj2 ] 
json.dumps(data,indent=2) 
Các vấn đề liên quan