2016-10-28 5 views
1

각 개체에 id 필드가있는 4 개의 개체가 포함 된 JSON 배열이 있습니다. 네 번째 객체에는 각각 id 필드가있는 두 개의 자식이 포함됩니다. 나는 4 명의 상위 레벨 아이들의 ID만을 얻고 싶다. 나는 네 번째 요소의 자식들의 ID를 원하지 않는다.JSONPath를 사용하여 최상위 수준의 자식 만 가져 오기

이는 JSON 문자열의 단순화 된 버전입니다 : 그들은, 예를 들어,에서 온 어떤 수준을 결정하는 방법으로, 나에게 모든 6 ID 요소를 얻을 것이다 JSONPath, $..id를 사용

[ 
    { 
    "id": 709709537 
    }, 
    { 
    "id": 1104067257 
    }, 
    { 
    "id": 2961327618 
    }, 
    { 
    "id": 9066007668, 
    "photo": { 
     "id": 461295287, 
     "thumbnails": [ 
     { 
      "id": 461295307 
     } 
     ] 
    } 
    } 
] 

[ 
    709709537, 
    1104067257, 
    2961327618, 
    9066007668, 
    461295287, 
    461295307 
] 

나는 4 최상위 레벨을 나에게 id 아이들을 줄 $.id 예상, 그러나 이것은 나에게 아무 것도 얻을 수 없습니다.

많은 페이지를 조사하고 JSON 테스터 (예 : https://jsonpath.curiousconcept.com/)를 사용하여 여러 실험을 시도했지만 JSONPath 표현식을 찾을 수 없어 상위 4 개의 하위 id 요소 만 얻었습니다.

최상위 수준의 하위 ID를 얻을 수있는 JSONPath 표현식이 있습니까?

답변

3

가 나는

$[*].id 

당신이 배열이이 것을 기억해야한다고 생각, 당신은 배열의 각 요소를 원한다. 그럼 나중에 .id를 원해.

+0

작동하는 것처럼 보입니다. 감사합니다 – user2970051

+0

괜찮습니다. 허용되는 답변을 표시해야합니다. 이런 식으로 비슷한 문제를 가진 다른 사람들이 당신의 것을 실제로 볼 수 있고 유용한 정보를 얻었습니다. – Nol