Exemples d’importation de fichiers JSON

  • Rversion finale: Yokohama
  • Mis à jour 30 janv. 2025
  • 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 étape par étape sur la création d’une source de données de type Fichier, Créer une source de données de type de fichierreportez-vous à la section .

    • Pour JSON les tableaux, le chemin d’accès de chaque ligne doit spécifier l’élément racine du tableau deux fois, par exemple /incidents/incidents.
    • JSON les fichiers 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 enfants, frères et sœurs ou 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 2e niveau

    • 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 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 de 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 :
    • Identifiant : 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 :
    • Identifiant : 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 à l’erreur des 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 à l’erreur des 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 suivre la norme RFC-4627, qui stipule que les noms d’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"
          }
       }
    }