2009-07-08 4 views
9

J'ai deux objets JSON. L'un est un tableau python qui est converti en utilisant json, dumps() et d'autres contient des enregistrements de la base de données et est sérialisé en utilisant json serializer. Je veux les combiner en un seul objet JSON.Combinaison de deux objets JSON dans un

Pour exemple:

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

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

] 

Je veux les fusionner en seul objet comme ci-dessous:

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

        ] 
      } 

Comment puis-je faire cela?

+0

Pour récupérer l'objet JSON, utilisez JSON.parse (finalObj) –

Répondre

15

Vous ne pouvez pas le faire une fois qu'ils sont au format JSON - JSON est juste du texte. Vous devez les combiner en Python premier:

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

Je ne sais pas si je me manque quelque chose, mais je pense que cela fonctionne (testé en python 2.5) avec la sortie que vous spécifiez:

import simplejson 

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

Vous avoir deux techniques. La version de liste souffre de la limitation que l'ordre compte. Cependant, le JSON est légèrement plus simple. La version du dictionnaire contient des données imbriquées, ce qui semble plus complexe. Le typeof (finalObj.obj2) de retour sur le client est une chaîne.

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


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