2012-05-03 3 views
17

JSON은 xml의 경우처럼 루트 요소를 필요로합니까? 내가 아는 한이 유효한 json 문자열입니다.JSON 루트 요소

{ 
    "email":[ 
     { 
      "type":"home", 
      "name":"[email protected]" 
     }, 
     { 
      "type":"work", 
      "name":"[email protected]" 
     } 
    ] 
} 

json을 xml로 변환해야합니다. 그러나 위의 유효 json xml 변환 할 때 그것은 유효하지 않습니다? 나는 뭔가를 놓쳤는가 아니면 이것은 정상적인 것인가?

+0

변환에 어떤 라이브러리를 사용하고 있으며 어떤 오류가 표시됩니까? –

답변

21

JSON 문서의 가장 바깥 쪽 수준은 "개체"(중괄호) 또는 "array"(대괄호).

JSON을 XML로 변환하는 소프트웨어는 규칙이 다른 데이터 모델이라는 사실을 조정해야합니다. 서로 다른 변환 도구가 이러한 차이를 다른 방식으로 처리합니다.

+2

정식 참조 정보가 있습니까? 내가 어디에서나 그것을 확인할 수는 없다. 첫 번째 두 개는 자식을 가질 수있는 유일한 요소이지만 올바른 형식의 요소 (배열, 객체, 문자열, 숫자 등)는 기술적으로 유효한 JSON 루트 요소입니다. – GrayWizardx

+7

실제로 두 가지 JSON 사양이 있습니다. RFC 4627은 JSON 텍스트가 객체 또는 배열이되도록 요구합니다. ECMA-262, 5th edition, 15.12 절은이 제한을 부과하지 않습니다. –

+1

[RFC 7159, 섹션 2 "JSON 문법"] (https://tools.ietf.org/html/rfc7159#section-2)이이 제한을 없애고 이제는 "루트"로 모든 값을 허용하는 것으로 보입니다. –

2

이것은 정상적인 현상이며 json과 xml에는 동일한 규칙이 없습니다. 루트 괄호 "{"및 "}"을 루트 요소로 변환하여 변환 문제가 발생하지 않도록 할 수 있습니다.