IT story

JSON 키는 따옴표로 묶어야합니까?

hot-time 2020. 4. 28. 08:24
반응형

JSON 키는 따옴표로 묶어야합니까?


예 : 다음 코드는 JSON 사양에 유효 합니까?

{
    precision: "zip"
}

아니면 항상 다음 구문을 사용해야합니까? (그렇다면 왜?)

{
    "precision": "zip"
}

JSON 사양에서 이것에 대해 실제로 찾지 못했습니다. 예제에서 키 주위에 따옴표를 사용하지만.


예, 따옴표가 필요합니다. 이것은 더 간단하게하고 자바 스크립트 예약 키워드에 대해 다른 이스케이프 메소드가 필요하지 않도록하는 것 {for:"foo"}입니다.


문자열을 키로 사용하는 것이 맞습니다. 다음은 RFC 4627 에서 발췌 한 것 입니다. JavaScript 객체 표기법 (JSON)을위한 응용 프로그램 / json 미디어 유형

2.2. 사물

객체 구조는 0 개 이상의 이름 / 값 쌍 (또는 멤버)을 둘러싸는 중괄호 쌍으로 표시됩니다. 이름은 문자열 입니다. 각 이름 뒤에 단일 콜론이 나타나 이름과 값을 구분합니다. 단일 쉼표는 다음 이름과 값을 구분합니다. 객체 내 이름은 고유해야합니다.

object = begin-object [ member *( value-separator member ) ] end-object

member = string name-separator value

[...]

2.5.

문자열 표현은 C 프로그래밍 언어 제품군에서 사용되는 규칙과 유사합니다. 문자열은 따옴표로 시작하고 끝납니다. [...]

string = quotation-mark *char quotation-mark

quotation-mark = %x22 ; "

여기 에서 전체 RFC를 읽으 십시오 .


에서 2.2. 사물

객체 구조는 0 개 이상의 이름 / 값 쌍 (또는 멤버)을 둘러싸는 중괄호 쌍으로 표시됩니다. 이름은 문자열입니다.

그리고 2.5에서.

문자열은 따옴표로 시작하고 끝납니다.

따라서 표준에 따르면 말할 것입니다. 그렇습니다. 키를 항상 인용해야합니다 (일부 파서가 더 용서 할 수는 있지만)


따옴표는 필수입니다. http://json.org/ 는 말합니다 :

string
    ""
    " chars "

"parent.child"점선 표기법을 사용할 수 있고 또한 유효하고 유용한 parent [ "child"]를 넣을 필요가 없기 때문에 두 가지 방법 모두 기술적으로 허용됩니다. 파서는 모두 두 가지 방법 모두 잘 수행해야합니다. 파서가 키에 따옴표가 필요하지 않으면 따옴표를 넣지 않는 것이 좋습니다 (공간 절약). 문자열을 문자열이라고 부르는 것이 합리적이며 대괄호는 키 값을 사용할 수 있으므로 본질적으로 완벽하지 않습니다. Json에서 당신은 넣을 수 있습니다 ...

>var keyName = "someKey";
>var obj = {[keyName]:"someValue"};

>obj
Object {someKey: "someValue"}

just fine without issues, if you need a value for a key and none quoted won't work, so if it doesn't, you can't, so you won't so "you don't need quotes on keys". Even if it's right to say they are technically strings. Logic and usage argue otherwise. Nor does it officially output Object {"someKey": "someValue"} for obj in our example run from the console of any browser.

참고URL : https://stackoverflow.com/questions/949449/do-the-json-keys-have-to-be-surrounded-by-quotes

반응형