programing

최소 유효 JSON은 얼마입니까?

bestcode 2022. 9. 16. 00:03
반응형

최소 유효 JSON은 얼마입니까?

JSON 설명 http://json.org/은 주의 깊게 읽었지만 간단한 질문에 대한 답을 알 수 있을지 모르겠습니다.유효한 최소 JSON 문자열은 무엇입니까?

  • "string"JSON?
  • 42JSON?
  • trueJSON?
  • {}JSON입니까?
  • []JSON입니까?

작성 시 JSON은 RFC4627에만 기재되어 있습니다.JSON 텍스트는 ("2"의 선두에) 시리얼화된 오브젝트 또는 어레이로 기술되어 있습니다.

이것은 단지 {} ★★★★★★★★★★★★★★★★★」[]유효한 JSON 문자열은 해당 표준에 준거한 파서 및 스트링ifier입니다.

다만, ECMA-404의 도입에 의해서 변경되어 갱신된 어드바이스는 이쪽에서 참조할 수 있습니다.는 또한 그 문제에 대한 블로그 투고를 썼다.


그러나 문제를 더욱 혼란스럽게 하기 위해,JSON 오오:JSON.parse() ★★★★★★★★★★★★★★★★★」JSON.stringify()웹 브라우저에서 사용 가능한 )는 ES5에서 표준화되었으며 다음과 같이 허용 가능한 JSON 텍스트를 명확하게 정의합니다.

이 사양에서 사용되는 JSON 인터체인지 포맷은 RFC 4627에서 기술된 포맷과 동일하지만 다음 2가지 예외가 있습니다.

  • ECMAScript JSON 문법의 최상위 JSONText 생성은 RFC 4627에서 규정되어 있듯이 JSONObject 또는 JSONArray로 제한되지 않고 임의의 JSONValue로 구성될 수 있습니다.

  • 절단했다

이는 JSON 객체가 기술적으로 RFC 4627에 준거하고 있는 경우에도 모든 JSON 값(스트링, 늘 및 번호 포함)이 JSON 객체에 의해 받아들여지는 것을 의미합니다.

에서는 「」를 개입시켜 할 수 있습니다.JSON.stringify(5)RFC4627에 준거한 다른 파서에 의해 거부되지만 위의 특정 예외가 없습니다.를 들어 루비는 루트로만 오브젝트와 배열을 받아들이는 그런 예 중 하나로 보입니다.반면 PHP는 "스칼라 유형과 NULL도 인코딩 및 디코딩합니다"라는 예외를 특별히 추가합니다.

JSON JSON 4」는, 모두 되고 있는 의해서 MIME 타입되고 있습니다.application/json다음은 각자가 최상위 값에 대해 설명해야 할 사항입니다.또, 오브젝트나 어레이 이외의 것이 상단에서 허용되는지 여부를 나타냅니다.

RFC-4627: 아니요

JSON 텍스트는 일련의 토큰입니다.토큰 세트에는 6개의 구조 문자, 문자열, 숫자 및 3개의 리터럴 이름이 포함됩니다.

JSON 텍스트는 직렬화된 개체 또는 배열입니다.

JSON-text = 객체 / 배열

RFC-4627은 「제안된 표준」이 아닌 「정보」라고 마크 되어 있어 RFC-7159에 의해 폐지되어 RFC-8259에 의해 폐지되고 있는 것에 주의해 주세요.

RFC-8259: 있음.

JSON 텍스트는 일련의 토큰입니다.토큰 세트에는 6개의 구조 문자, 문자열, 숫자 및 3개의 리터럴 이름이 포함됩니다.

JSON 텍스트는 시리얼화된 값입니다.JSON의 특정 이전 사양에서는 JSON 텍스트가 객체 또는 배열로 제한되었습니다.JSON 텍스트가 호출되는 객체 또는 어레이만 생성하는 구현은 모든 구현이 이를 적합한 JSON 텍스트로 받아들인다는 점에서 상호 운용이 가능합니다.

JSON-text = ws 값 ws

RFC-8259는 2017년 12월호이며, "INTERNET STANDARD"라고 표시되어 있습니다.

ECMA-262: 네.

JSON 구문 문법은 JSON 어휘 문법에 의해 정의된 토큰의 관점에서 유효한 JSON 텍스트를 정의합니다.문법의 목표 기호는 JSONText입니다.

구문 JSONText:

JSONValue

JSONValue:

JSON Null Literal

JSON Boolan Literal

JSONObject

JSONARay

JSONString

JSON Number

ECMA-404: 네.

JSON 텍스트는 JSON 값 문법에 적합한 Unicode 코드 포인트로 구성된 일련의 토큰입니다.토큰 세트에는 6개의 구조 토큰, 문자열, 숫자 및 3개의 리터럴 이름 토큰이 포함됩니다.

(RFC 7159에 의해 2014년 3월에 폐지된) RFC 4627의 오래된 정의에 따르면 이들 값은 모두 유효한 "JSON 값"이지만 마지막 두 개만 완전한 "JSON 텍스트"를 구성합니다.

JSON 텍스트는 직렬화된 개체 또는 배열입니다.

사용되는 파서에 따라서는, 단독의 「JSON 값」이 받아들여질 가능성이 있습니다.예를 들어 ('JSON 값'과 'JSON 텍스트' 용어를 고수):

  • 현재 최신 브라우저에서 표준화된 함수는 모든 "JSON 값"을 받아들인다.
  • PHP 함수는 버전 5.2.0에서 "JSON 텍스트" 전체를 받아들이도록 도입되었지만 버전 5.2.1에서는 "JSON 값"을 받아들이도록 수정되었습니다.
  • 파이썬의json.loads는, 이 메뉴얼 페이지의 예에 따라서, 임의의 「JSON 값」을 받아들입니다.
  • http://jsonlint.com의 검증자는 완전한 "JSON 텍스트"를 요구합니다.
  • Ruby JSON 모듈은 완전한 "JSON 텍스트"만 받아들입니다(적어도 이 매뉴얼 페이지의 코멘트에 따르면).

기술적으로는 XML 문서와 XML 프래그먼트(fragment)의 구별과 약간 유사합니다.<foo />는 적절한 형식의 XML 문서입니다(이 문서는 다음과 같이 쓰는 것이 좋습니다).<?xml version="1.0" ?><foo />하지만 댓글에 지적된 바와 같이<?xml선언은 기술적으로는 옵션입니다).

JSON은 JavaScript 객체 표기법의 약자입니다.오직.{}그리고.[]Javascript 개체를 정의합니다.다른 예는 가치 리터럴입니다.Javascript에는 이러한 값으로 작업하기 위한 객체 유형이 있지만 표현식은"string"는 오브젝트가 아닌 리터럴 값의 소스 코드 표현입니다.

JSON은 Javascript가 아닙니다.데이터를 나타내는 표기법입니다.그것은 매우 단순하고 제한된 구조를 가지고 있다.JSON 데이터는 다음과 같이 구성됩니다.{},:[]성격.이 구조체 내에서는 리터럴 값만 사용할 수 있습니다.

서버가 오브젝트 설명 또는 리터럴 값으로 응답하는 것은 완전히 유효합니다.모든 JSON 파서는 리터럴 값만 처리하도록 핸들링해야 합니다.단, 1개의 값만 처리할 수 있습니다.JSON은 한 번에 하나의 개체만 나타낼 수 있습니다.따라서 서버가 여러 값을 반환하려면 해당 값을 개체 또는 배열로 구성해야 합니다.

ECMA 규격은 참조에 유용할 수 있습니다.

http://www.ecma-international.org/ecma-262/5.1/

해석 함수는 JSON 텍스트(JSON 형식의 문자열)를 해석하여 ECMAScript 값을 생성합니다.JSON 형식은 ECMAScript 리터럴의 제한된 형식입니다.JSON 오브젝트는 ECMAScript 오브젝트로 실현됩니다.JSON 어레이는 ECMAScript 어레이로 실현됩니다.JSON 문자열, 숫자, 부울 및 null은 ECMAScript String, Numbers, 부울 및 null로 실현됩니다.JSON은 WhiteSpace보다 제한된 공백 문자 집합을 사용하여 Unicode 코드 포인트 U+2028 및 U+2029를 이스케이프 시퀀스를 사용하지 않고 JSONString 리터럴에 직접 표시할 수 있습니다.해석 프로세스는 JSON 문법에 의해 제약되는 11.1.4 및 11.1.5와 비슷합니다.

JSON.parse("string"); // SyntaxError: Unexpected token s
JSON.parse(43); // 43
JSON.parse("43"); // 43
JSON.parse(true); // true
JSON.parse("true"); // true
JSON.parse(false);
JSON.parse("false");
JSON.parse("trueee"); // SyntaxError: Unexpected token e
JSON.parse("{}"); // {}
JSON.parse("[]"); // []

예, 예, 예, 예, 예, 예.모두 유효한 JSON 값 리터럴입니다.

, 공식 RFC 4627에서는 다음과 같이 기술되어 있습니다.

JSON 텍스트는 직렬화된 개체 또는 배열입니다.

따라서 전체 "파일"은 가장 바깥쪽 구조로 객체 또는 배열로 구성되어야 하며, 물론 비어 있을 수 있습니다.그러나 많은 JSON 파서는 입력에 대해서도 원시 값을 받아들입니다.

var x;
JSON.stringify(x); // will output "{}"

정답은 ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★."{}"이것은 빈 개체를 나타냅니다.

json.org 페이지에 나와 있는 철도 도표를 따라가기만 하면 됩니다.[] 및 {}은(는) 유효한 최소 JSON 개체입니다.정답은 []와 {}입니다.

언급URL : https://stackoverflow.com/questions/18419428/what-is-the-minimum-valid-json

반응형