program story

“-”대시를 사용하여 JSON 속성에 액세스 할 수 없습니다

inputbox 2020. 7. 28. 08:30
반응형

“-”대시를 사용하여 JSON 속성에 액세스 할 수 없습니다


문자열에 대시 문자가 있으면 json 객체에서 값을 검색 할 수 없습니다.

{
"profile-id":1234, "user_id":6789
}

파싱 ​​된 참조를 시도 jsonObj.profile-id하면 반환 ReferenceError: "id" is not defined되지만 jsonObj.user_id는 6789를 반환합니다.

외부 API 호출에서 반환되는 값을 수정하고 대시를 제거하기 위해 반환 된 문자열을 구문 분석하려고 시도하면 전달되는 URL 등이 손상됩니다. 도움?


jsonObj.profile-id뺄셈 표현식입니다 (예 :) jsonObj.profile - id.

식별자에 나타나지 않는 문자가 포함 된 키에 액세스하려면 대괄호를 사용하십시오.

jsonObj["profile-id"]

사용하기 쉽고 하이픈을 사용하면 다음과 같이 작동했습니다.

    - name: free-ud-ssd-space-in-percent
      debug:
        var: clusterInfo.json.content["free-ud-ssd-space-in-percent"]

이 답변 외에도 Node.js에서 배열 구문으로 JSON에 액세스하면 []모든 중첩 JSON 키가 해당 구문을 따라야합니다.

이것은 잘못된 길입니다

json.first.second.third['comment']

'정의되지 않은'오류가 발생합니다.

이것이 올바른 방법입니다

json['first']['second']['third']['comment'] 

참고 URL : https://stackoverflow.com/questions/13869627/unable-to-access-json-property-with-dash

반응형