2017-07-03 3 views
0

Je travaille sur un projet BI lorsque j'ai besoin de combiner deux JSON dans une sortie pour les insérer dans MongoDB.Fusionner plusieurs JSON dans une sortie

écran d'emploi:

Screenshot

La première JSON est comme ça:

{ 
    "idCommand": 1 
    "name": "Maurice" 
} 

La deuxième JSON est comme ça:

{ 
    "products": [ 

     { 
      "name": "Banana" 
     }, 
     { 
      "name": "Orange" 
     }, 
    ] 
} 

La JSON finale que nous vouloir:

{ 
    "idCommand": 1 
    "name": "Maurice", 
    "products": [ 

     { 
      "name": "Banana" 
     }, 
     { 
      "name": "Orange" 
     }, 
    ] 
} 
+0

Ceci n'est pas une jointure, il s'agit d'une simple concaténation. Êtes-vous sûr qu'il y aura toujours un enregistrement dans la première et la seconde source qui peut être connectée? Je voudrais d'abord concat les deux champs et ensuite utiliser 'tWriteJSONField'. Le seul problème est qu'il y aurait une boucle externe et une boucle interne (faites-le d'abord pour tous les premiers JSON, puis le premier JSON # 2 ...) et non pas une boucle 1: 1 autant que je sache. – tobi6

+0

Oui, je suis sûr que dans ma base de données Oracle j'ai deux tables: commands et commands_product. commands contient l'en-tête de la commande et commands_product contient le produit associé aux commandes. Je veux faire un seul json avec un tableau imbriqué. –

+0

"* contient le produit associé *" - il n'y a pas d'association visible. Pour autant que je comprenne ce résultat, c'est une pure concidence que les enregistrements peuvent être concaténés. Mais si ce ne sont que deux tables, vous devriez penser 'rejoindre 'les tables dans Oracle,' sélectionner' le résultat et écrire des champs JSON. Cela devrait être beaucoup plus facile. Encore une fois, dépend si les tables sont joignables. – tobi6

Répondre

0

Créé sur un commentaire:

"contient le produit associé" - il n'y a pas d'association visible. Pour autant que je comprenne ce résultat, c'est une pure concidence que les enregistrements peuvent être concaténés. Mais si ce ne sont que deux tables, vous devriez penser à join ing les tables dans Oracle, select le résultat et écrire des champs JSON. Cela devrait être beaucoup plus facile. Encore une fois, dépend si les tables sont joignables.