JSON ファイルのインポート例

  • リリースバージョン: Yokohama
  • 更新日 2025年01月30日
  • 所要時間:5分
  • これらの例は、さまざまなタイプの JSON データと各行に必要なパスをインポートする方法を示しています。インポートする JSON ファイルは、次のガイドラインに従う必要があります。

    ファイルタイプデータソースを作成する段階的な手順については、「ファイルタイプのデータソースを作成する」を参照してください。

    • JSON アレイの場合、各行のパスで /incidents/incidents のようにアレイのルート要素を 2 回指定する必要があります。
    • JSON ファイルは RFC-4627 に従う必要があります。たとえば、値と続く名前は 1 つのカンマで区切る必要があります。オブジェクト内の名前は一意である必要があります。
    • @element[index]、または text() などの述語や、子、兄弟、先祖などの Axis はサポートされていません。

    簡易アレイ

    • 各行のパス:/incidents/incidents
    • 結果:2 レコード
    この例では、各行のパスにアレイルートノード /incidents が 2 回含まれています。これはアレイをインポートするときに必要です。
    {  
       "source":"HI",
       "incidents":[  
          {  
             "number":"INC0000001",
             "short_description":"Can't read email"
          },
          {  
             "number":"INC0000002",
             "short_description":"Error loading XML file"
          }
       ]
    }
    

    第 2 レベルのアレイ

    • 各行のパス:/problems/data/data
    • 結果:3 レコード
    この例では、各行のパスにアレイルートノード /data が 2 回含まれています。
    {  
       "problems":{  
          "id":"0",
          "data":[  
             {  
                "number":"PRBTEST001",
                "short_description":"testsd1"
             },
             {  
                "number":"PRBTEST002",
                "short_description":"testsd2"
             },
             {  
                "number":"PRBTEST003",
                "short_description":"testsd3"
             }
          ]
       }
    }
    

    ネストされたアレイ

    • 各行のパス:/problems/problems/data/data
    • 結果:3 レコード
    この例では、各行のパスに、両方のアレイのルートノード /problems/data が 2 回含まれています。
    {  
       "problems": [  
             {
          "id":0,
          "data":[  
                {  
                   "number":"PRBTEST001",
                   "short_description":"testsd1"
                },
                {  
                   "number":"PRBTEST002",
                   "short_description":"testsd2"
                },
                {  
                   "number":"PRBTEST003",
                   "short_description":"testsd3"
                }
              ]
           }
        ]	
    }
    

    子 (ネストされた) アレイのサポート

    デフォルトでは、インポートは子 (ネストされた) アレイをサポートしていません。サポートを有効にするには、データソースビューの [配列を破棄] チェックボックスをオフにします。次の表では、子アレイのサポートを有効または無効にしたときのさまざまな動作について説明します。

    { 
      "response":{
        "docs":[ 
          { 
            "id":"id_val",
            "childrenArray":[1,2,3],
            "anotherArray":[{"key1":"value1"}, {"key1": "value2"}],
            "elementWithArray":{"childrenArray":[1,2,3]}
          }
        ]
      }
    }
    
    表 : 1. 子アレイの動作
    パス アレイの破棄が有効 アレイの破棄が無効
    /response/docs/docs 次の列と値を持つレコードを 1 つ作成します。
    • Id : id_val
    • elementWithArray : {}
    レコード内にあるアレイ (childrenArray や anotherArray など) は、インポートテーブルの列として作成されません。
    次の列と値を持つレコードを 1 つ作成します。
    • Id : id_val
    • childrenArray : [1, 2, 3]
    • anotherArray : [{"key1" : "value1"}, {"key1" : "value2"}]
    • elementWithArray : {"childrenArray" : [1, 2, 3]}
    /response/docs/docs/anotherArray/anotherArray それぞれが 1 つの列 key1 を持つ 2 つのレコードを作成します。 それぞれが 1 つの列 key1 を持つ 2 つのレコードを作成します。
    /response/docs/docs/childrenArray/childrenArray アレイ内の値が key-value 構造になっていないため、機能せず、[パスは常に JSON オブジェクトを参照する必要があります (Path should always refer JSON Objects)] というエラーが返されます。 アレイ内の値が key-value 構造になっていないため、機能せず、[パスは常に JSON オブジェクトを参照する必要があります (Path should always refer JSON Objects)] というエラーが返されます。

    孤立アレイ

    • 各行のパス://
    • 結果:2 レコード
    [  
       {  
          "number":"PRBTEST001",
          "short_description":"testsd1"
       },
       {  
          "number":"PRBTEST002",
          "short_description":"testsd2"
       }
    ]
    

    アレイではなく複数の要素

    • 各行のパス:/problems/problem
    • 結果:3 レコード
    重要:
    この形式はお勧めしません。JSON ファイルは、オブジェクト内の名前は一意でなければならないと規定する RFC-4627 に従う必要があります。代わりに 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"
          }
       }
    }