programing

JSONPath를 사용하여 JSON 개체에서 단일 값 가져오기

iphone6s 2023. 3. 3. 17:07
반응형

JSONPath를 사용하여 JSON 개체에서 단일 값 가져오기

나는 다음 JSON을 가지고 있고 나는 평원을 얻어야 한다.nameJSONPath를 사용한 값:

{
  "single" : {
    "id" : 1, 
    "name" : "Item name"
  }
}

제가 사용한 표현은$.single.name항상 배열이 있습니다.

[ "Item name" ]

문자열 값 대신("Item name").

항상 배열이 있습니다.

그것은 일어나게 되어 있다.이 문서에서 볼 수 있듯이 '결과' 아래(거의 맨 아래)에서 다음을 수행합니다.

jsonPath의 반환값은 어레이이며 이는 유효한 JSON 구조이기도 합니다.따라서 결과 구조에 jsonPath를 다시 적용하거나 원하는 어레이 방법 중 하나를 사용하여 정렬할 수 있습니다.

따라서 기본적으로 어레이는 항상 반환됩니다.데이터가 다른 유형(예: 이 경우 문자열)으로 필요한 경우 사용자가 직접 변환해야 합니다.

JSONPath의 Java 실장을 사용하고 있었는데, 같은 문제가 발생하였습니다.저는 json 경로 문자열에 "[0]"을 추가하는 것이 효과적이었습니다.고객님의 경우:

$.single.name[0]

언어실현에 따라 다르다고 생각합니다.

예를 들어 nodejs에는 npm 모듈이 있습니다.https://www.npmjs.com/package/jsonpath

가치라는 방법이 있어 우리가 필요로 하는 것을 정확히 해낸다.

jp.value(obj, pathExpression[, newValue])

pathExpression과 일치하는 첫 번째 요소의 값을 반환합니다.newValue를 지정한 경우 첫 번째 일치 요소의 값을 설정하고 새 값을 반환합니다.

시도해보고 일했어!

이 오류가 발생한 경우

"식 $.yourfield에 대한 스칼라 값을 가져올 수 없습니다."

반환 유형 속성 값을 'auto-detect'가 아닌 'json'으로 변경하여 EvaluateJsonPath 프로세서를 구성하기만 하면 됩니다.

여기에 이미지 설명 입력

언급URL : https://stackoverflow.com/questions/23608050/getting-a-single-value-from-a-json-object-using-jsonpath

반응형