Exemples d’importation de fichiers JSON

  • Rversion finale: Xanadu
  • Mis à jour 1 août 2024
  • 3 minutes de lecture
  • Ces exemples montrent comment importer différents types de données JSON et le chemin d’accès nécessaire pour chaque ligne. Les fichiers JSON que vous importez doivent suivre ces directives.

    Pour obtenir des instructions détaillées sur la création d’une source de données de type Fichier, reportez-vous à la section Créer une source de données de type de fichier.

    • Pour JSON les tableaux, le chemin d’accès de chaque ligne doit spécifier deux fois l’élément racine du tableau, par exemple /incidents/incidents.
    • JSON doivent suivre la RFC-4627. Par exemple, une seule virgule doit séparer une valeur du nom suivant. Les noms dans un objet doivent être uniques.
    • Les prédicats tels que @element, [index] ou text(), ainsi que les axes tels que les enfants, les frères et sœurs ou les ancêtres ne sont pas pris en charge.

    Tableau simple

    • Chemin d’accès de chaque ligne : /incidents/incidents
    • Résultat : 2 enregistrements
    Dans cet exemple, le chemin d’accès de chaque ligne inclut deux fois le nœud racine du tableau /incidents . Cela est nécessaire lors de l’importation d’un tableau.
    {  
       "source":"HI",
       "incidents":[  
          {  
             "number":"INC0000001",
             "short_description":"Can't read email"
          },
          {  
             "number":"INC0000002",
             "short_description":"Error loading XML file"
          }
       ]
    }
    

    Tableau de niveau 2

    • Chemin d’accès de chaque ligne : /problems/data/data
    • Résultat : 3 enregistrements
    Dans cet exemple, le chemin d’accès de chaque ligne inclut deux fois le nœud racine du tableau /data .
    {  
       "problems":{  
          "id":"0",
          "data":[  
             {  
                "number":"PRBTEST001",
                "short_description":"testsd1"
             },
             {  
                "number":"PRBTEST002",
                "short_description":"testsd2"
             },
             {  
                "number":"PRBTEST003",
                "short_description":"testsd3"
             }
          ]
       }
    }
    

    Tableau imbriqué

    • Chemin d’accès de chaque ligne : /problems/problems/data/data
    • Résultat : 3 enregistrements
    Dans cet exemple, le chemin d’accès de chaque ligne inclut deux fois les nœuds racines des deux tableaux, /problems et /data.
    {  
       "problems": [  
             {
          "id":0,
          "data":[  
                {  
                   "number":"PRBTEST001",
                   "short_description":"testsd1"
                },
                {  
                   "number":"PRBTEST002",
                   "short_description":"testsd2"
                },
                {  
                   "number":"PRBTEST003",
                   "short_description":"testsd3"
                }
              ]
           }
        ]	
    }
    

    Prise en charge des tableaux enfants (imbriqués)

    Par défaut, l’importation ne prend pas en charge les tableaux enfants (imbriqués). Vous pouvez activer la prise en charge en décochant la case Ignorer les tableaux dans la vue Source de données. Le tableau suivant décrit les différents comportements lors de l’activation et de la désactivation de la prise en charge des tableaux enfants.

    { 
      "response":{
        "docs":[ 
          { 
            "id":"id_val",
            "childrenArray":[1,2,3],
            "anotherArray":[{"key1":"value1"}, {"key1": "value2"}],
            "elementWithArray":{"childrenArray":[1,2,3]}
          }
        ]
      }
    }
    
    Tableau 1. Comportement du tableau enfant
    Chemin d'accès Ignorer les tableaux activés Ignorer les tableaux désactivés
    /réponse/docs/docs Crée un enregistrement avec les colonnes et valeurs suivantes :
    • Id : id_val
    • elementWithArray : {}
    Les tableaux trouvés dans un enregistrement, tels que childrenArray ou anotherArray, ne sont pas créés en tant que colonnes dans la table d’importation.
    Crée un enregistrement avec les colonnes et valeurs suivantes :
    • Id : id_val
    • childrenArray : [1, 2, 3]
    • anotherArray : [{"key1 » : « value1"}, {"key1 » : « value2"}]
    • elementWithArray : {"childrenArray » : [1, 2, 3]}
    /response/docs/docs/anotherArray/anotherArray Crée deux enregistrements, chacun avec une colonne : key1. Crée deux enregistrements, chacun avec une colonne : key1.
    /response/docs/docs/childrenArray/childrenArray Ne fonctionne pas et renvoie un chemin d’accès doit toujours faire référence à une erreur d’objets JSON , car les valeurs du tableau ne sont pas dans une structure clé-valeur. Ne fonctionne pas et renvoie un chemin d’accès doit toujours faire référence à une erreur d’objets JSON , car les valeurs du tableau ne sont pas dans une structure clé-valeur.

    Tableau orphelin

    • Chemin d’accès de chaque ligne :
    • Résultat : 2 enregistrements
    [  
       {  
          "number":"PRBTEST001",
          "short_description":"testsd1"
       },
       {  
          "number":"PRBTEST002",
          "short_description":"testsd2"
       }
    ]
    

    Plusieurs éléments au lieu d’un tableau

    • Chemin d’accès de chaque ligne : /problems/problem
    • Résultat : 3 enregistrements
    Important :
    Ce format n’est pas recommandé. Les fichiers JSON doivent respecter la norme RFC-4627, qui stipule que les noms dans un objet doivent être uniques. Utilisez plutôt des tableaux JSON.
    {  
       "problems":{  
          "title":"2 problems",
          "problem":{  
             "number":"PRBTEST001",
             "short_description":"testsd1"
          },
          "problem":{  
             "number":"PRBTEST002",
             "short_description":"testsd2"
          }
       },
       "problems":{  
          "title":"1 problem",
          "problem":{  
             "number":"PRBTEST005",
             "short_description":"testsd5"
          }
       }
    }