Exemplos de importação de arquivo JSON

  • Versão de lançamento: Washingtondc
  • Atualizado 1 de fev. de 2024
  • 2 min. de leitura
  • Esses exemplos demonstram como importar vários tipos de dados JSON e o caminho necessário para cada linha. Os arquivos JSON importados devem seguir estas diretrizes.

    Para obter instruções passo a passo sobre como criar uma fonte de dados de tipo de arquivo, consulte Criar uma fonte de dados de tipo de arquivo.

    • Para matrizes JSON, o caminho de cada linha deve especificar o elemento raiz da matriz duas vezes, como /incidents/incidents.
    • Os arquivosJSON devem seguir RFC-4627. Por exemplo, uma única vírgula deve separar um valor do nome a seguir. Os nomes em um objeto devem ser exclusivos.
    • Predicados como @element, [index]ou text(), bem como Eixo como secundários, secundários ou ancestrais não são compatíveis.

    Matriz simples

    • Caminho para cada linha: /incidents/incidents
    • Resultado: 2 registros
    Neste exemplo, o caminho de cada linha inclui o nó raiz da matriz /incidents duas vezes. Isso é necessário ao importar uma matriz.
    {  
       "source":"HI",
       "incidents":[  
          {  
             "number":"INC0000001",
             "short_description":"Can't read email"
          },
          {  
             "number":"INC0000002",
             "short_description":"Error loading XML file"
          }
       ]
    }
    

    Matriz no 2º nível

    • Caminho para cada linha: /problems/data/data
    • Resultado: 3 registros
    Neste exemplo, o caminho de cada linha inclui o nó raiz da matriz /data duas vezes.
    {  
       "problems":{  
          "id":"0",
          "data":[  
             {  
                "number":"PRBTEST001",
                "short_description":"testsd1"
             },
             {  
                "number":"PRBTEST002",
                "short_description":"testsd2"
             },
             {  
                "number":"PRBTEST003",
                "short_description":"testsd3"
             }
          ]
       }
    }
    

    Matriz aninhada

    • Caminho para cada linha: /problems/problems/data/data
    • Resultado: 3 registros
    Neste exemplo, o caminho de cada linha inclui os nós raiz de ambas as matrizes duas vezes, /problems e /data.
    {  
       "problems": [  
             {
          "id":0,
          "data":[  
                {  
                   "number":"PRBTEST001",
                   "short_description":"testsd1"
                },
                {  
                   "number":"PRBTEST002",
                   "short_description":"testsd2"
                },
                {  
                   "number":"PRBTEST003",
                   "short_description":"testsd3"
                }
              ]
           }
        ]	
    }
    

    Suporte a matrizes secundárias (aninhadas)

    Por padrão, a importação não oferece suporte a matrizes secundárias (aninhadas). Você pode habilitar o suporte desmarcando a caixa de seleção Descartar matrizes na exibição Fonte de dados. A tabela a seguir descreve diferentes comportamentos ao habilitar e desabilitar o suporte à matriz secundária.

    { 
      "response":{
        "docs":[ 
          { 
            "id":"id_val",
            "childrenArray":[1,2,3],
            "anotherArray":[{"key1":"value1"}, {"key1": "value2"}],
            "elementWithArray":{"childrenArray":[1,2,3]}
          }
        ]
      }
    }
    
    Tabela 1. Comportamento da matriz secundária
    Caminho Descartar matrizes habilitadas Descartar matrizes desabilitadas
    /resposta/docs/docs Cria um registro com as seguintes colunas e valores:
    • ID: id_val
    • elementWithArray : {}
    Todas as matrizes encontradas em um registro, como childArray ou otherArray, não são criadas como colunas na tabela de importação.
    Cria um registro com as seguintes colunas e valores:
    • ID: id_val
    • childArray : [1, 2, 3]
    • otherArray : [{"key1" : "value1"}, {"key1" : "value2"}]
    • elementWithArray : {"childrenArray" : [1, 2, 3]}
    /response/docs/docs/anotherArray/anotherArray Cria dois registros, cada um com uma coluna: key1. Cria dois registros, cada um com uma coluna: key1.
    /response/docs/docs/childrenArray/childrenArray Não funciona e retorna um erro de caminho que deve sempre se referir a objetos JSON porque os valores na matriz não estão em uma estrutura de chave-valor. Não funciona e retorna um erro de caminho que deve sempre se referir a objetos JSON porque os valores na matriz não estão em uma estrutura de chave-valor.

    Matriz órfã

    • Caminho para cada linha: //
    • Resultado: 2 registros
    [  
       {  
          "number":"PRBTEST001",
          "short_description":"testsd1"
       },
       {  
          "number":"PRBTEST002",
          "short_description":"testsd2"
       }
    ]
    

    Vários elementos em vez de uma matriz

    • Caminho para cada linha: /problems/problem
    • Resultado: 3 registros
    Importante:
    Este formato não é recomendado. Os arquivos JSON devem seguir a RFC-4627, que declara que os nomes em um objeto devem ser exclusivos. Em vez disso, use matrizes 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"
          }
       }
    }