[javascript] JSON 키 이름에서 어떤 문자가 유효 / 무효입니까?

JavaScript 객체 또는 JSON 문자열에 대해 키 이름에 금지 된 문자가 있습니까? 아니면 탈출해야 할 캐릭터?

보다 구체적으로, 키 이름에 “$”, “-“및 공백을 사용하고 싶습니다.



답변

아니요. 유효한 문자열은 유효한 키입니다. "당신이 탈출하는 한 그것을 가질 수도 있습니다 .

{"The \"meaning\" of life":42}

키를 객체 필드 이름과 연결하려는 일부 언어로 이러한 값을로드하는 데 어려움이있을 수 있습니다. 그러나 나는 그런 경우를 모른다.


답변

문제를 피하려면 JSON 데이터에서 다음 문자를 이스케이프해야합니다

작은 따옴표

” 인용문

백 슬래시

\ n \ t와 같은 모든 제어 문자

JSON 파서JSON 을 다루는 데 도움을 줄 수 있습니다.

편집 :
OP의 링크가 죽었으므로 대체 JSON 파서가 있습니다.


답변

숫자로 키를 시작하는 것이 유효하지만 의도하지 않은 문제가 발생할 수 있습니다.

예:

var testObject = {
    "1tile": "test value"
};
console.log(testObject.1tile); // fails, invalid syntax
console.log(testObject["1tile"]; // workaround


답변

유니 코드 코드 포인트 U + D800에서 U + DFFF는 피해야합니다. UTF-16 서로 게이트 쌍용으로 예약되어 있기 때문에 유니 코드 에서는 유효하지 않습니다 . 일부 JSON 인코더 / 디코더는 U + FFFD로 대체합니다. 예를 들어 Go 언어 및 해당 JSON 라이브러리가이를 처리하는 방법을 참조하십시오 .

따라서 “\ uD800″에서 “\ uDFFF”만 (대리 쌍이 아닌) 피하십시오.


답변