문제

예 : 다음 코드가 JSON 사양?

{
    precision: "zip"
}

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

{
    "precision": "zip"
}

나는 JSON 사양에서 이것에 대해 실제로 발견하지 못했습니다. 그들은 예에서 열쇠 주위에 따옴표를 사용하지만.

도움이 되었습니까?

해결책

예, 견적 마크가 필요합니다. 이것은 더 간단하게 만들고 JavaScript 예약 키워드에 대한 또 다른 탈출 방법이 필요하지 않도록하는 것입니다. {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"점 표기법을 넣을 수 있고 유효하고 유용한 부모 [ "child"]를 넣을 필요가 없으므로 두 가지 방법이 기술적으로 수용 가능하다고 말합니다. 파서는 모두 두 가지 방법을 모두 잘 수행해야합니다. 파서가 열쇠에 따옴표가 필요하지 않으면 공간을 절약하지 않는 것이 좋습니다 (공간을 저장). 그것들은 그들이 무엇인지, 정사각형 괄호는 당신에게 키에 대한 값을 사용할 수있는 능력을 제공하기 때문에 본질적으로 완벽하게 이해되지 않기 때문에 문자열이라고 부르는 것이 합리적입니다. JSON에서 당신은 ...

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

>obj
Object {someKey: "someValue"}

문제없이 괜찮습니다. 키에 대한 값이 필요하고 인용 된 인용이 작동하지 않으면 작동하지 않으므로 그렇지 않으면 할 수 없으므로 "키에 따옴표가 필요하지 않습니다". 말하는 것이 옳더라도 기술적으로 줄이 있습니다. 논리와 사용법은 그렇지 않다고 주장합니다. OBJ에 대한 OBJ에 대한 객체 { "nodey": "somevalue"}}은 공식적으로 브라우저의 콘솔에서 실행되지 않습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top