배열 요소 인 JSON 데이터가 있습니다. 그러나 배열이 하나의 요소 만 포함하면 정보는 배열 대신 문자열로 제공됩니다. 아래의 $ .phoneNumbers.type 요소를 참조하십시오. 첫 번째 전화 번호에서 "type"요소는 배열로 표시되지만 배열에는 하나의 요소 ("iPhone") 만 포함됩니다. 두 번째 전화 번호에서 유형은 단순한 문자열 ("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 $?