2009-07-08 29 views
9

Ho due oggetti JSON. Uno è un array python che viene convertito usando json, dumps() e altri contiene record dal database ed è serializzato usando json serializer. Voglio combinarli in un singolo oggetto JSON.Combinazione di due oggetti JSON in uno

Per esempio:

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

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

] 

voglio unirli in unico oggetto, come di seguito:

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

        ] 
      } 

Come posso fare questo?

+0

typeof (finalObj.obj2) sul client è una stringa. Per recuperare l'oggetto JSON usa JSON.parse (finalObj) –

risposta

15

Non puoi farlo una volta che sono in formato JSON - JSON è solo testo. È necessario combinare in Python prima:

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

Non sono sicuro se mi manca qualcosa, ma credo che questo funziona (testato in Python 2.5) con l'uscita specificato:

import simplejson 

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

È avere due tecniche. La versione elenco soffre della limitazione che l'ordine è importante. Tuttavia, il JSON ha un aspetto leggermente più semplice. La versione del dizionario ha dati nidificati, che appaiono più complessi.

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


data = [ obj1, obj2 ] 
json.dumps(data,indent=2)