2014-09-25 3 views
0

나는 다음과 같은 JSON 페이로드를 가지고 :JSON 경로 식

{ 
    "inputs" : [{ 
      "attributeX" : [{ 
        "id1" : "value11", 
       }, { 
        "id1" : "value12", 
       } 
      ], 
      "attributeY" : [{ 
        "id" : "valueY1", 
        "attributeZ" : [{ 
          "pathZ" : "/Path1/Path2[00163E038C2E1EE299C1C394370BCFA0]/Description", 
          "value" : "valueXYZ", 
         } 
        ], 
       } 
      ] 
     } 
    ] 
} 
내가 pathZ의 값을 취득 할 수 있도록 내가 JSON 경로 식을 작성하려합니다

. 그러나 [] 내의 값의 일부는 동적입니다. 다음 JSON 경로 표현에서 와일드 카드를 지정하는 방법이 있습니까?

$.inputs.[*].attributeY.[*].attributeZ[?(@.pathZ=='/Path1/Path2**<HOW_CAN_I_SPECIFY_A_WILDCARD_HERE>**/Description')].value 

답변

1

당신은 중간 일치하지 않고 PathZ 값의 시작과 끝을 일치하도록 JSON 경로 표현식에서 정규식을 사용할 수 있습니다. http://www.jsonquerytool.com/sample/jsonpathregex

: 여기 온라인 JSON 쿼리 도구를 사용하여이 테스트 한

$.inputs.[*].attributeY.[*].attributeZ[?(new RegExp('^/Path1/Path2.*/Description$').test(@.pathZ))].value 

:이 같은 표현이 보일 것이다 것입니다