2009-07-08 2 views
9

У меня есть два объекта JSON. Один из них представляет собой массив python, который преобразуется с помощью json, dumps(), а другой содержит записи из базы данных и сериализуется с использованием json serializer. Я хочу объединить их в один объект JSON.Объединение двух объектов JSON в одном

Для например:

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

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

] 

Я хочу, чтобы объединить их в единый объект, как показано ниже:

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

        ] 
      } 

Как я могу это сделать?

+0

типof (finalObj.obj2) назад на клиенте - строка. Чтобы вернуть объект JSON, используйте JSON.parse (finalObj) –

ответ

15

Вы не можете сделать это, как только они находятся в формате JSON - JSON - это просто текст. Вы должны объединить их в Python первым:

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

Не уверен, что если я что-то не хватает, но я думаю, что это работает (проверено в Python 2.5) с выходом указывается:

import simplejson 

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

Вы имеют два метода. Версия списка страдает от ограничения, которое имеет порядок. Однако JSON немного проще. В версии словаря есть вложенные данные, которые выглядят более сложными.

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


data = [ obj1, obj2 ] 
json.dumps(data,indent=2) 
Смежные вопросы