이 게시물의 토론에 따라 : json-conversion-in-javascript
답변
예, 배열은 최상위 JSON 텍스트로 합법적입니다.
JSON을 정의하는 세 가지 표준 문서는 RFC 4627 , RFC 7159 (RFC 4627 폐기 됨) 및 ECMA-404 입니다. 허용하는 최상위 요소가 다르지만 모두 최상위 요소로 객체 또는 배열을 허용합니다.
- RFC 4627 : 개체 또는 배열.
“JSON 텍스트는 직렬화 된 객체 또는 배열입니다.” - RFC 7159 : 모든 JSON 값.
“JSON 텍스트는 직렬화 된 값입니다.” - ECMA-404 : 모든 JSON 값.
“JSON 텍스트는 JSON 값 문법을 따르는 유니 코드 코드 포인트로 구성된 일련의 토큰입니다.”
답변
예 ,하지만 JSON 하이재킹 으로 인해 일부 시나리오에서 대신 루트를 객체로 만드는 것을 고려해야합니다 . 이것은 JavaScript의 배열 생성자 재정의를 기반으로 한 정보 유출 취약점입니다.
답변
이것은 ECMAScript 사양에서 가져온 것입니다.
JSONText : JSONValue JSONValue : JSONNullLiteral JSONBooleanLiteral JSONObject JSONArray JSONString JSONNumber