문자열에 대시 문자가있는 경우 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"]