2017-10-17 4 views
0

JSONPath를 사용하여 version이라는 변수의 값을 얻으려고했지만 분명히 내 솔루션이 전혀 작동하지 않았습니다. $ .. version 또는 $ .container..version과 같은 표현식을 사용하려고했습니다. 이 말에이 중괄호 실종 (루트 개체 및 container 객체는 폐쇄되지 않습니다) 아래json 응답에서 변수로 데이터를 가져 오는 방법

내 응답 : 붙여 넣은 모든 JSON의

{ 
    "container" : { 
    "version" : 8, 
    "updatedBy" : "user111", 
    "updatedOn" : "2017-08-17T16:00:24Z", 
    "id" : 16, 
    "dataEnt" : { 
     "dataEntid" : "dataEntid-000032", 
     "dataEnttype" : "21" 
    }, 
    "impact" : [ ], 
    "operationalFocus" : false, 
    "periodicity" : { 
     "version" : 0, 
     "updatedBy" : "unknown", 
     "updatedOn" : "2017-03-31T16:44:08Z", 
     "step" : 1, 
     "period" : 31084132, 
     "_VALIDATION" : { 
     "valid" : true, 
     "saveAll" : true, 
     "reasons" : [ ], 
     "details" : { 
      "period" : { 
      "valid" : true, 
      "saveAll" : true, 
      "risks" : [ ], 
      "rmiCode" : null, 
      "rmiMessage" : null 
      }, 
      "version" : { 
      "valid" : true, 
      "saveAll" : true, 
      "risks" : [ ], 
      "rmiCode" : null, 
      "rmiMessage" : null 
      }, 
      "step" : { 
      "valid" : true, 
      "saveAll" : true, 
      "risks" : [ ], 
      "rmiCode" : null, 
      "rmiMessage" : null 
      } 
     }, 
     "rmiCode" : null, 
     "rmiMessage" : null 
     }, 
     "_META" : { } 
    } 

답변

1

먼저이 잘못되었습니다. 이것이 SO에 대한 복사/붙여 넣기 오류가 아니라 실제 데이터에 문제가있는 경우이를 먼저 수정해야 할 수 있습니다. 내가 제대로 이해하면

, 당신은 변수이 필드의 값 원하는 :

"version" : 8 

그렇다면를, JSON 경로는 다음과 같아야합니다

$.container.version 

또는

container.version 

상대 경로가 절대 경로 인 경우 $..version 또는 $.container..version 같은

경로 (periodicity 속성에 "version" : 0을하고 _VALIDATION 내부 객체 인 하나) 여러 버전의 필드를 선택

0

다음 식을 당신에게 원하는 결과를 얻을 수 있습니다. 변수 : ContainerVersion JSON 표현 : $ .. container.version 이제 저장된 버전 값을 사용하여 호출 할 수 있습니다 : $ {ContainerVersion} 여러가있는 경우 "버전"태그가

을, 당신은 [*] 당신은 $ {VAR_1}, $ {VAR_2} 등과 같은 변수를 호출 할 수 있습니다 다음과 같은 표현, $ .. container.version을함으로써 "버전"의 모든 값을로드 할 수 있습니다 .. 디버그 샘플러를 추가하여로드 된 변수 이름과 해당 값을 확인하십시오.

위 희망은 ...

관련 문제