bestsource

XML보다 JSON을 선호하는 시기

bestsource 2023. 2. 17. 21:30
반응형

XML보다 JSON을 선호하는 시기

데이터베이스로부터 취득한 값 세트를 스프레드시트에 표시하는 것이 요구됩니다.저는 jquery를 사용하고 있습니다.

다음 중 하나에 해당하는 경우 JSON보다 XML을 우선합니다.

  • 메시지 검증이 필요합니다.
  • XSLT를 사용하고 있다
  • 메시지에는 마크업된 텍스트가 많이 포함되어 있습니다.
  • JSON을 지원하지 않는 환경과 상호 운용해야 합니다.

다음 모든 조건이 충족될 경우 XML보다 JSON을 선호합니다.

  • 메시지를 검증할 필요가 없으며, 역직렬화 검증이 간단함
  • 메시지를 변환하거나 역직렬화를 변환하는 것은 간단합니다.
  • 메시지는 대부분 데이터이며 표시 텍스트가 아닙니다.
  • 메시징 엔드포인트에 좋은 JSON 도구가 있다.

XML을 사용할 필요가 없는 한 JSON을 사용합니다.JSON은 이해하기 쉽고, (구성 오버헤드가 적기 때문에) 라이브러리가 컨텍스트에서 사용 가능한 경우 읽기 및 쓰기를 위한 프로그래밍이 용이하며, 현재는 거의 어디서나 사용할 수 있습니다.

Amazon은 웹 서비스로 카탈로그를 처음 공개했을 때 JSON과 XML을 모두 제공했습니다. 구현자의 90%가 JSON을 선택했습니다.

고객 측에서 이미 javascript를 하고 있는 당신의 구체적인 사례를 고려할 때, 저는 다음과 같은 이유로 JSON으로 하겠습니다.

  • 이기 때문에 쓸 필요가 JSON javascript는 javascript만 쓸 수 있습니다.eval() 것은)JSON.parse()할 수 있는 JSON은 사용할 수 없습니다.

  • 동시에 클라이언트 측에서 JSON을 평가하는 것이 보다 효율적이며, 따라서 더 빨라집니다.

  • JSON 직렬화는 XML보다 짧은 문자열을 생성합니다. JSON을 사용하면 회선을 통해 실행되는 데이터 양이 줄어들고 이러한 측면에서 성능이 향상됩니다.

자세한 것은, http://www.subbu.org/blog/2006/08/json-vs-xml 를 참조해 주세요.

XML과 JSON의 관계에서 다른 몇 가지 문제가 발생했습니다.

JSON은 굉장히 좋은

  • 이름/값 쌍
  • 그 쌍들을 중첩

즉, 어레이 또는 네스트된 어레이를 좋아하는 경향이 있습니다.단, JSON에는 둘 다 없습니다.

  • 특성
  • 네임스페이스

따라서 둘 이상의 JSON 서비스를 결합할 경우 네임스페이스 충돌이 발생할 수 있습니다.JSON은 제 경험으로 볼 때 XML을 사용할 수 있는 것과 거의 같은 용도로 사용할 수 있습니다.

일반적으로 JSON은 더 작고 해석 속도가 빠릅니다.

다음과 같은 경우 XML 선호:

  • 클라이언트의 데이터를 처리해야 하며 이를 위해 XSL을 활용할 수 있습니다.XML + XSL - JSON + JavaScript xml xml xml 。
    • 한 가지 좋은 경우는 데이터를 HTML 스니펫으로 변환하는 것입니다.
  • 다음과 같이 합니다.
    • 기존 XML 서비스가 있는데 어떤 이유로 JSON으로 다시 쓰는 것이 번거롭습니다.
    • 사용자의 입력을 사용하여 가벼운 처리를 한 후 이 데이터를 XML로 다시 게시해야 합니다.

(거의) XML의 중요한 예 중 하나는 HTML 스니펫을 송신할 때 검출하는 것이 원시 데이터를 송신하는 것보다 유리하다는 것입니다.AHAH는 간단한 응용 프로그램에서도 놀라운 기능을 할 수 있지만 종종 간과됩니다.일반적으로 이 스타일은 서버가 처리하지 않고 웹 페이지에 삽입되는 HTML 스니펫을 발송한다고 가정합니다.

일반적으로 AHAH의 경우 CSS는 스니펫을 시각적으로 마사지하기 위해 최대한 활용되며 사용자 고유 설정 또는 애플리케이션 고유 설정을 사용하여 스니펫의 관련 부분을 숨기거나 표시하는 등의 간단한 조건을 구현합니다.

JSON은 클라이언트브라우저가 데이터를 해석하기 위해 수행해야 하는 처리의 관점에서 항상 바람직합니다.또한 JSON은 경량 데이터 교환 형식입니다.

XML 해석은 항상 많은 브라우저 리소스를 소비하므로 특별히 필요하지 않는 한 최대한 피해야 합니다.

JSON은 해석하기 쉽고 빠릅니다.XML은 해석하기가 조금 더 어렵고 해석 및 전송이 더 느립니다(대부분의 경우).

jQuery를 사용하고 있기 때문에 JSON을 사용하는 것이 좋습니다.jQuery는 JSON 데이터를 자동으로 검색하여 Javascript 객체로 변환할 수 있습니다.실제로 eval을 사용하여 JSON 데이터를 Javascript 객체로 변환할 수 있습니다.XML은 사용자가 수동으로 번역해야 합니다(Javascript에서 어떻게 동작하는지는 모르겠지만 XML 라이브러리를 사용해 본 대부분의 언어에서는 어렵거나 더 귀찮습니다).

웹 프로토콜(SOAP, XML, JSON, REST, POX 등)의 역사를 자세히 설명하는 블로그 게시물이 있습니다. 요약은 물론 각각의 장점과 단점도 제공합니다. http://www.servicestack.net/mythz_blog/?p=http://http://www.servicestack.net/mythz_blog/

동적(JSON) 언어와 정적(XML) 언어의 차이를 비교함으로써 XML과 JSON 간의 많은 유사점을 도출할 수 있다고 생각합니다.

기본적으로 XML은 보다 엄격하고 견고한 시리얼라이제이션 포맷으로 부속된 스키마(XSD 또는 DTD)를 사용하여 선택적으로 검증할 수 있습니다.XSD는 매우 정교하고 다양한 유형을 설명할 수 있습니다.날짜, 시간, 열거, 사용자 정의 유형 및 유형 상속 등 효과적으로 XML 기능 세트 위에 구축되어 WSDL을 통해 웹 서비스(타입 및 작업 등)를 기술하는 표준화된 방법을 제공합니다.WSDL 사양은 상세하고 복잡하기 때문에 개발이 번거로울 수 있습니다.다만, 대부분의 현대 언어에서는 클라이언트 프록시를 생성하기 위한 자동화 툴이 제공되고 있기 때문에, 외부 서비스와의 상호 운용을 시도할 때의 부담을 어느 정도 경감할 수 있습니다(단,자주 변경되는 웹 서비스를 처리할 때 생성된 프록시 자체가 부담스럽다는 것을 알게 됩니다.)

웹 서비스에 XML을 사용하는 것이 좋습니다.또한 자주 변경되지 않는 '엔터프라이즈 서비스'가 정의되어 있거나 웹 서비스에 다양한 언어로 액세스해야 하는 경우도 마찬가지입니다.

XML에는 단점도 있습니다.확장 가능한 형식을 입력하기 위해 네임스페이스에 의존하며 동일한 문서 내에서 속성과 요소를 지정할 수 있습니다.하나의 문서 내에 다른 네임스페이스가 있다는 것은 XML 파서를 사용하여 데이터를 추출할 때 많은 시간이 걸린다는 것을 의미합니다.또, 취득 또는 트래버스를 실시하는 각 요소의 네임스페이스도 지정할 필요가 있습니다.또한 필요한 것보다 더 장황하게 하중을 추정할 수 있습니다.요소뿐만 아니라 속성을 출력하는 선택사항이 있다는 것은 클래스가 XML 문서에 제대로 매핑되지 않는다는 것을 의미합니다.이러한 기능만으로는 대부분의 언어에 적합하지 않기 때문에 작업이 더 지루하고 번거롭습니다.Microsoft는 DataContract 시리얼라이저를 사용하여 XML 속성을 없애고 클래스 속성을 XML 요소에만 매핑함으로써 이 점을 인식하고 다소 단순화했습니다.

반면 JSON은 매우 느슨하게 타이핑되어 있고 기본 유형만 단순하게 지원되므로 많은 면에서 XML과 완전히 반대입니다.숫자, 불, 문자열, 객체 및 배열.다른 모든 것들은 기본적으로 끈에 맞아야 합니다.보다 구체적인 유형을 지원하려면 대역 외 비표준 사양을 준수해야 하기 때문에 언어 경계를 넘어 통신하려고 할 때는 이 방법이 적합하지 않습니다.JSON 문자열은 JavaScript 객체에 직접 평가될 수 있기 때문에 제한된 기능 세트가 대부분의 언어에 적합한 프로그램입니다.

크기와 퍼포먼스

Microsoft XML 및 JSON 구현 간의 크기와 속도를 비교하는 몇 가지 노스윈드 데이터베이스 벤치마크를 사용할 수 있습니다.기본적으로 XML은 JSON의 2배 이상 크기이지만 동시에 Microsoft는 JSON보다 30% 이상 빠르기 때문에 XML DataContractSerializer를 최적화하기 위해 많은 노력을 기울인 것으로 보입니다.크기와 성능의 균형을 맞춰야 할 것 같습니다.이 사실이 마음에 들지 않아 저는 저만의 빠른 JsonSerializer를 쓰기로 결심했습니다.이것은 MS의 XML보다 2.6배 빠릅니다.그래서 두 세계 모두 최고입니다:)

XML은 XSD를 통해 기본적으로 이를 지원하기 때문에 착신 데이터의 청크를 검증해야 하는 경우 JSON보다 XML을 선택합니다.

From JSON - 마지막 피트

JSON 루트를 진행하면 XML이 10년 전에 직면했던 것과 같은 문제에 직면하게 됩니다.

2 개의 다른 송신원으로부터의 데이터를 1 개의 JSON 패킷에 혼합하면, 요소 라벨이 서로 충돌하는 일이 있습니다.포장 전표와 송장을 혼동하면, 갑자기 From 주소가 전혀 다른 것을 의미할 수 있습니다.이것이 XML에 네임스페이스가 있는 이유입니다.

다른 JSON 구조 간에 변환하려면 일상적인 코드를 작성해야 합니다.데이터를 매핑하는 보다 선언적인 방법은 작업을 더 쉽게 만들 수 있습니다.이것이 XML에 XSLT가 있는 이유입니다.

JSON 패킷의 구조(필드, 데이터 유형 등)를 기술합니다.사용자가 서비스에 접속하기 위해 필요합니다.여기에는 메타데이터 언어가 필요합니다.그것이 XML에 스키마가 있는 이유입니다.

2개의 클라이언트와 서버의 동시 대화를 실행할 때는 주의가 필요합니다.서버에 2개의 질문을 하고1개의 답변을 받았을 경우, 어떤 질문에 대한 답변을 얻을 수 있습니까?이것이 XML에 WS-Correlation이 있는 이유입니다.

JSON은 javascript의 네이티브 부호화입니다.훨씬 더 빠르고 쉽게 작업할 수 있을 것입니다.

http://json.org/xml.html의 첫 줄부터

XML(Extensible Markup Language)은 SGML(Standard Generalized Markup Language)에서 파생된 텍스트 형식입니다.SGML에 비해 XML은 단순합니다.이에 비해 HyperText Markup Language(HTML)는 더욱 단순합니다.그래도 HTML로 된 좋은 참고서는 1인치 두께입니다.문서의 형식과 구조가 복잡하기 때문입니다.

JSON이 빠른 것은 분명하지만, 읽기 어려운 것은 더욱 분명합니다.속도를 높이기 위해 JSON을 사용하고, 사람과 대화하여 속도를 희생할 수 있는 경우 XML을 사용합니다.

JSON은 모든 종류의 설정, 데이터 교환 또는 메시징에 사용합니다.XML은 다른 이유로 사용하거나 문서와 유사한 데이터를 의미적으로 표시해야 하는 경우에만 사용합니다.

XML 와 JSON 는 모두 Microsoft 로 서포트되고 있습니다.XML 리터럴은 VB 9의 새로운 뛰어난 기능입니다.ASP의 새로운 버전입니다.NET 4.0 JSON은 클라이언트 측 템플릿의 성능을 활용하기 위해 반드시 필요합니다.

질문하신 내용에 따르면 JSON은 jQuery 유무에 관계없이 클라이언트 측에서 쉽게 처리할 수 있기 때문에 선택하실 수 있습니다.

JSON 사용

  • 브라우저의 JavaScript에 의해 데이터가 소비되는 경우.
  • 데이터 모델은 단순하고 복잡하지 않습니다(복합 객체가 너무 많습니다).

XML 사용

  • 대부분 이기종 플랫폼과 기술에 여러 서비스를 통합하고 있는 SOA 같은 환경에서 이루어집니다.
  • SOAP는 HTTP 이외의 다른 프로토콜을 통해 전송될 수 있다는 장점이 있습니다.
  • XSLT, XSL-FO 등의 데이터 모델 변환 도구에서 사용하기 쉽습니다.
  • XML 데이터 저장/쿼리(XQuery)를 위한 데이터베이스 지원 로트.
  • XML은 매우 성숙한 데이터 형식이기 때문에 생각할 수 있는 모든 사용 사례를 지원하는 다양한 도구를 찾을 수 있습니다.

디지털 바자회에서 이 기사가 정말 재미있었어요.

기사의 일부 내용은 다음과 같습니다.

JSON의 프로에 대해서:

전달하고 싶은 것이 원자값, 원자값 목록 또는 해시뿐이라면 JSON은 XML의 많은 장점을 가지고 있습니다.즉, 인터넷을 통해 바로 사용할 수 있고, 다양한 애플리케이션을 지원하며, JSON을 처리하기 위한 프로그램을 쉽게 작성할 수 있으며, 옵션 기능이 거의 없으며, 사람이 읽을 수 있는 설계 형태입니다.JSON 문서는 쉽게 작성할 수 있으며 Unicode를 사용합니다.

XML 프로에 대해서:

XML은 풍부한 비정형 데이터를 매우 잘 처리합니다.웹 API 디자이너의 간부들이 XML의 죽음을 즐겁게 축하한다고 해도 나는 XML의 미래에 대해 전혀 걱정하지 않는다.

내 책상에 "그랬잖아!"라는 토큰을 집어넣지 않을 수 없다.JSON 사람들이 보다 풍부한 API를 개발하도록 요청받았을 때 무엇을 할 것인지 기대하고 있습니다.구조화되지 않은 데이터를 교환하고 싶을 때 JSON에 구두끈을 달아줄까요?JSON용 스키마 언어에 대한 언급이 가끔 있습니다만, 다른 언어도 계속됩니까?...

빠른 규칙:

  • JSON: 프로그램 간 데이터 형식
  • YAML(JSON 슈퍼셋): 휴먼-투-프로그램 데이터 형식
  • XML: 문서 마크업 형식

설명:

JSON의 유일한 역할은 대부분의 프로그래밍 언어에 공통적인 데이터 유형(리스트, 해시, 스칼라)을 사용하여 객체 지향 데이터를 직렬화하는 것입니다.그 때문에, 이 데이터는 타의 추종을 불허하거나 개선할 수 있습니다.「JSON에는 버전 번호가 없습니다.JSON 문법의 개정이 기대되고 있지 않습니다.」- 더글러스 크록포드(당신이 일을 완벽하게 하고 있다는 신호로서 그것을 능가할 수 없습니다)

XML은 한때 데이터 교환 형식으로 판매되었지만 가장 일반적인 두 가지 사용 사례를 고려해 보십시오.Asynchronous Client-Server Communication(AJAX; 비동기 클라이언트-서버 통신) - JSON은 XML을 거의 완전히 대체하고 있습니다(X는 실제로 J여야 합니다). 서비스: JSON은 XML을 용장 대체품으로 만들었습니다.

XML이 널리 사용된 또 다른 이유는 프로그램용 인간의 쓰기/읽기(?) 가능한 데이터 파일입니다. 그러나 여기에서도 JSON 슈퍼셋인 YAML은 보다 간결하고 프로그램 친화적이며 인간 친화적인 포맷을 제공합니다.

데이터 표현에 있어서 JSON은 XML을 전반적으로 능가합니다.그러면 XML에는 무엇이 남아 있습니까?혼합 콘텐츠 문서 표현, 이것이 의도된 것입니다.

대부분의 최신 웹 기술은 JSON을 사용하여 작동하므로 JSON을 사용해야 하는 충분한 이유가 됩니다.XML 에서는, 같은 정보를 복수의 다른 방법으로 표현할 수 있는 것이 큰 장점입니다.JSON 에서는, 보다 알기 쉬운 정보를 표시할 수 있습니다.

또, JSON IMHO는 XML보다 훨씬 선명하기 때문에, 확실히 유리합니다.와 함께 작업하는 경우.NET, Json.NET은 JSON과의 협력을 지원하는 확실한 성공자입니다.

나는 여기서 약간의 편견의 교의를 보고 있다.이에 대한 답변은 xml에 대해 지나치게 단순하고 Web Development(Web Development)의 컨텍스트에서만 얻을 수 있기 때문에 (질문에 이치에 맞는 질문) 누군가 이를 넘어 다른 컨텍스트에서의 데이터 직렬화에 대한 답변이 필요할 경우를 대비해서 id는 몇 가지 추가 통찰력을 제공할 수 있다고 생각했습니다.

다음은 어려운 규칙과 빠른 규칙입니다.

XML은 확실히 더 강력합니다.따라서 데이터 모델이 복잡하여 다음 기능이 필요할 때 사용하십시오.

  1. 네임스페이스 지원
  2. 객체 지향 상속/다형성 지원
  3. 복잡한 유형의 재사용을 위한 포함 및 확장성 지원.
  4. 신뢰성이 높고 성숙하며 완전한 스키마 검증 시스템에 대한 지원이 필요합니다.
    • w3c Schema Validation 시스템은 JSON Schema에 대해 훨씬 더 많은 기능을 갖추고 있으며 이를 학습하기 위한 더 많은 문헌이 있습니다.
  5. 혼합 콘텐츠 문서 데이터 모델링 및 데이터 모델링과 유사한 기록 지원.

JSON은 학습, 이해 및 사용이 더 간단합니다.따라서 XML을 배울 시간이 없고 위의 기능이 필요하지 않을 때 사용하십시오.또, 유스케이스에 있어서 중요한 것은, 유선상의 경량화입니다.

TL:DR, XML은 json이 할 수 있는 모든 것을 할 수 있지만 더 무겁습니다.그 반대는 전혀 사실이 아니다.네, Json이 더 단순하기 때문에 더 많이 사용되지만 XML을 대체할 수 있는 것은 아닙니다. 올해 2020년에는 Json이 사용 사례에 적합하지 않았기 때문에 XML이 필요했습니다. 필요에 따라 더 자세히 설명할 수 있습니다.건배, 행운을 빈다.

언급URL : https://stackoverflow.com/questions/325085/when-to-prefer-json-over-xml

반응형