[javascript] “-“대시를 사용하여 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"]


답변

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

이것은 잘못된 방법입니다

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

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

이것이 올바른 방법입니다

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


답변

ansible과 하이픈을 사용하면 이것은 나를 위해 일했습니다.

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


답변