2016-08-16 9 views
0

配列の要素を含むJSONデータがあります。ただし、配列に1つの要素しか含まれていない場合、情報は配列ではなく文字列として提供されます。下記の$ .phoneNumbers.type要素を参照してください。最初の電話番号では、「type」要素は配列として表されますが、配列には1つの要素(「iPhone」)のみが含まれます。 2番目の電話番号では、タイプは単なる文字列( "home")です。文字列または配列を選択するJsonpath式

{ 
    "firstName": "John", 
    "lastName" : "doe", 
    "age"  : 26, 
    "address" : { 
    "streetAddress": "naist street", 
    "city"   : "Nara", 
    "postalCode" : "630-0192" 
    }, 
    "phoneNumbers": [ 
    { 
     "type" : ["iPhone"], 
     "number": "0123-4567-8888" 
    }, 
    { 
     "type" : "home", 
     "number": "0123-4567-8910" 
    } 
    ] 
} 

私はこの式を使ったJSONPathでこれを解析しようとすると:

$.phoneNumbers[0].type[0] 

を要素がアレイ括弧に包まれていないときに、私は次のエラーを取得します。

Filter: [0] can only be applied to arrays. Current context is: home - Line: 0" 

これらのいずれかを正常に解析できるJSONPath式はありますか?基本的に、要素が配列か文字列かどうかを確認し、必要に応じて次のように調整する必要があると思います:

配列の場合: $ .phoneNumbers [0] .typeそれは文字列である場合は、[0]

を: $ .phoneNumbers [0] .TYPE

は、この可能ですか? https://jsonpath.curiousconcept.comを使用してJSONの入力を使用する場合は

答えて

0

私は「iPhone」と「家庭」の両方の値を取得するには、次のJSONPathクエリを使用することができます:$ .phoneNumbers [*]

を入力します。
関連する問題