XML보다 JSON을 선호하는시기
내 요구 사항은 스프레드에서 데이터베이스에서 검색 된 일련의 값을 표시하는 것입니다. jquery를 사용하고 있습니다.
다음 중 하나에 해당하면 JSON보다 XML을 선호하십시오.
- 메시지 검증이 필요합니다
- XSLT를 사용하고 있습니다
- 귀하의 메시지에는 많은 마크 업 텍스트가 포함됩니다
- JSON을 지원하지 않는 환경과 상호 운용해야합니다
다음과 같은 경우 JSON보다 XML을 선호하십시오.
- 메시지를 확인할 필요가 없거나 역 직렬화를 확인하는 것이 간단합니다.
- 메시지를 변환하지 않거나 역 직렬화를 변환하는 것은 간단합니다.
- 귀하의 메시지는 대부분 마크 업 텍스트가 아닌 데이터입니다
- 메시징 엔드 포인트에는 우수한 JSON 도구가 있습니다.
XML을 사용해야하는 경우가 아니면 JSON을 사용합니다. 이해하기가 더 쉽고 (구성 오버 헤드가 덜 필요하기 때문에) 라이브러리가 사용자의 컨텍스트에서 사용 가능한 경우 읽기 및 쓰기를 위해 프로그래밍하기가 더 쉬우 며 현재는 어디에나 있습니다.
아마존이 카탈로그를 웹 서비스로 처음 공개했을 때 JSON과 XML을 모두 제공했습니다. 구현 자의 90 %가 JSON을 선택했습니다.
클라이언트 측에서 이미 자바 스크립트를 수행하는 특정 사례를 고려할 때 다음과 같은 이유로 JSON을 사용합니다.
JSON은 자바 스크립트에 고유하므로 클라이언트 쪽에서 더 적은 코드를 작성해야합니다. 즉 JSON 문자열 만 사용하고
eval()
더 나은 방법으로JSON.parse()
사용할 수있는 객체를 가져와야합니다.동시에 클라이언트 측에서 JSON을 평가하는 것이 더 효율적이므로 더 빠릅니다.
JSON 직렬화는 XML보다 짧은 문자열을 생성합니다. JSON을 사용하면 유선으로 전송되는 데이터 양이 줄어들고 그 점에서 성능이 향상됩니다.
더 읽을 거리가 있습니다 : http://www.subbu.org/blog/2006/08/json-vs-xml
XML 대 JSON relm에서 내가 본 다른 것들 :
JSON은 매우 좋습니다
- 이름 / 값 쌍
- 그 쌍을 중첩
즉, 배열이나 중첩 배열을 좋아하는 경향이 있습니다. 그러나 JSON에는 둘 다 없습니다.
- 속성
- 네임 스페이스
따라서 둘 이상의 JSON 서비스를 결합하려는 경우 네임 스페이스 충돌이 발생할 수 있습니다. 즉, JSON은 내 경험에서 데이터를 교환 할 때 XML을 사용할 수있는 것과 같은 것의 약 90 %에 사용할 수 있습니다.
일반적으로 JSON은 더 작고 구문 분석하기가 더 빠릅니다.
다음과 같은 경우 XML을 선호하십시오.
- 클라이언트에서 데이터를 처리해야하며이를 위해 XSL을 활용할 수 있습니다. XML + XSL 체인은 특히 대량의 데이터에 대해 JSON + JavaScript보다 빠르게 작동 할 가능성이 있습니다.
- 좋은 예는 데이터를 HTML 스 니펫으로 변환하는 것입니다.
- 다양한 레거시 사례 :
- 기존 XML 서비스가 있으며 몇 가지 이유로 JSON으로 다시 작성하는 것이 번거 롭습니다.
- 사용자 입력을 사용하여 약간의 가벼운 처리 후에이 데이터를 XML로 다시 게시해야합니다.
(거의) XML의 한 가지 중요한 경우 : HTML 스 니펫을 보낼 때 감지하는 것이 원시 데이터를 보내는 것보다 유리합니다. AHAH 는 간단한 응용 프로그램에서 놀라운 일을 할 수 있지만 간과되는 경우가 많습니다. 일반적으로이 스타일은 서버가 처리하지 않고 웹 페이지에 인라인 될 HTML 스 니펫을 전송한다고 가정합니다.
일반적으로 AHAH의 경우 CSS는 최대한 스 니펫을 시각적으로 마사지하고 사용자 별 또는 애플리케이션 별 설정을 사용하여 스 니펫의 관련 부분을 숨기거나 표시하는 것과 같은 간단한 조건을 구현하기 위해 최대한 활용됩니다.
JSON은 쉽고 빠르게 구문 분석 할 수 있습니다. XML은 구문 분석하기가 조금 더 어렵고 구문 분석 및 전송 속도가 느립니다 (대부분의 경우).
jQuery를 사용하고 있으므로 JSON을 사용하는 것이 좋습니다. jQuery는 JSON 데이터를 검색하여 자동으로 Javascript 객체로 변환 할 수 있습니다. 실제로 eval을 사용하여 JSON 데이터를 Javascript 객체로 변환 할 수 있습니다 . XML은 수동으로 전달해야합니다 (Javascript에서 어떻게 작동하는지 모르겠지만 XML 라이브러리를 사용하는 대부분의 언어에서는 어렵거나 더 성가시다).
JSON은 데이터를 구문 분석하기 위해 클라이언트 브라우저가 처리해야하는 측면에서 항상 선호됩니다. 또한 JSON은 경량 데이터 교환 형식입니다.
XML 파싱은 항상 많은 브라우저 리소스를 소비하므로 달리 요구하지 않는 한 최대한 많이 피해야합니다.
내가 아니라 각각의 장점과 단점 등으로 요약을 제공하는 (등 즉, SOAP, XML, JSON, REST, POX,) 웹 프로토콜의 역사를 자세히 주제에 대한 블로그 게시물이 있습니다 http://www.servicestack.net / mythz_blog /? p = 154
실제로 동적 (JSON) 언어와 정적 (XML) 언어의 차이점을 비교하여 XML과 JSON 사이에 많은 유사점을 그릴 수 있다고 생각합니다.
기본적으로 XML은 추가 스키마 (XSD 또는 DTD)를 사용하여 선택적으로 확인할 수있는보다 엄격하고 엄격한 직렬화 형식입니다. XSD는 매우 정교하며 날짜, 시간, 열거, 사용자 정의 유형 및 유형 상속 등 다양한 유형을 설명 할 수 있습니다. SOAP는 XML 기능 세트 위에 효과적으로 구축되어 웹 서비스를 설명하는 표준화 된 방법을 제공합니다 ( WSDL을 통한 유형 및 작업) WSDL 스펙의 상세 성과 복잡성은 개발하기가 더 지루할 수 있지만 동시에 더 많은 툴링을 사용할 수 있으며 대부분의 현대 언어는 클라이언트 프록시를 생성하는 자동화 된 툴을 제공하여 일부 부담을지고 있습니다. 외부 서비스와 상호 운용하려고 할 때 꺼집니다.
I would still recommend using XML for your web services if you have a well defined 'enterprise service' that is not subject to frequent change or your web service needs to be accessed from many different languages.
For all its benefits XML comes with downsides as well. It relies on namespaces in order to provide a typed extensible format and enables you to specify attributes and elements within the same document. Having different namespaces within the one document means a lot of the time when using a Xml Parser to extract data, you will also need to provide the namespace of each element you want to retrieve/traverse. It also extrapolates the payload making it more verbose than it needs to be. Having the option to output attributes as well as elements means your classes do not map nicely to an XML document. These features alone make it a poor programmatic fit for most languages making it more tedious and cumbersome to work with. Microsoft has recognized and simplified this somewhat with in their DataContract serializer by doing away with XML attributes and just having the properties of your class map to Xml elements only.
JSON on the other hand is the complete opposite to XML in many ways as it is very loosely-typed and only has simple support for basic types: Number, Bool, string, Objects and Arrays. Everything else essentially has to fit in a string. This is not great when trying to communicate across language boundaries as you will need to adhere to some out-of-band non-standard specification if you want to support more specific types. On the upside its limited feature-set makes a good programmatic fit to most languages - and is perfectly suited for JavaScript as a JSON string can be eval'ed directly into JavaScript object.
Size and Performance
I have some northwind database benchmarks available comparing the size and speed between Microsofts XML and JSON implementations. Basically XML is more than 2x the size of JSON but at the same time it looks as if Microsoft put in a lot of effort in optimizing their XML DataContractSerializer as it is more than 30% faster than their JSON one. It seems that you have to make trade-off between size and peformance. Not happy with this fact, I decided to write my own fast JsonSerializer which is now 2.6x faster then MS's XML one - so best of both worlds :).
I'd choose XML over JSON if I need to validate the chunk of incoming data, because XML nativly supports this through XSD.
When you go down the JSON route, you run into the same issues that XML faced 10 years ago:
Mixing data from two different sources into one JSON packet can cause element labels to bump into each other. Mix up a packing slip and an invoice, and suddenly the From address may mean something quite different. That’s why XML has namespaces.
Converting between different JSON structures would require writing mundane code. A more declarative way to map data would make the job easier. That’s why XML has XSLT.
Describing a JSON packet’s structure—its fields, data types, etc.—is necessary in order for people to hook into your services. It’s essential to have a metadata language for this. That’s why XML has Schemas.
Carrying on two simultaneous client-server conversations takes care. If you ask the server two questions and get one answer back, how do you know what question it answers? That’s why XML has WS-Correlation.
JSON is the native encoding for javascript. It should be much faster and easier to work with.
From the first line at http://json.org/xml.html
Extensible Markup Language (XML) is a text format derived from Standard Generalized Markup Language (SGML). Compared to SGML, XML is simple. HyperText Markup Language (HTML), by comparison, is even simpler. Even so, a good reference book on HTML is an inch thick. This is because the formatting and structuring of documents is a complicated business. . . .
Clearly JSON is faster, but it's even more clear that it is hard to read. Use JSON for speed, use XML if there will be human-interaction and you can sacrifice the speed.
I use JSON for any kind of configuration, data interchange or messaging. I use XML only if I have to for other reasons or to semantically mark up document-like data.
Both XML and JSON are supported by Microsoft. XML literals were the new cool feature in VB 9. In the upcoming version of ASP.NET 4.0 JSON is a must to leverage the power of client side templating.
From the question you have asked it seems JSON might be the choice for you as it is easy to process on client side with or without jQuery.
Using JSON
- If the data is to be consumed by JavaScript in the browser.
- Data model is simple and not complex(too many composite objects).
Using XML
- Mostly in an SOA kind of environment where you are integrating several services on heterogeneous platforms and technologies.
- SOAP has an advantage that it can be transmitted across different protocols other then HTTP.
- Easy to use in data model transformation tool like XSLT,XSL-FO etc.
- Lot of Database support to store/query(XQuery) XML data.
- XML is a very mature data format so you would find plenty of tools to support any use case that you can think of.
I found this article at digital bazaar really interesting.
Some portions from the article are quoted below.
About JSON pros:
If all you want to pass around are atomic values or lists or hashes of atomic values, JSON has many of the advantages of XML: it’s straightforwardly usable over the Internet, supports a wide variety of applications, it’s easy to write programs to process JSON, it has few optional features, it’s human-legible and reasonably clear, its design is formal and concise, JSON documents are easy to create, and it uses Unicode. ...
About XML pros:
XML deals remarkably well with the full richness of unstructured data. I’m not worried about the future of XML at all even if its death is gleefully celebrated by a cadre of web API designers.
And I can’t resist tucking an "I told you so!" token away in my desk. I look forward to seeing what the JSON folks do when they are asked to develop richer APIs. When they want to exchange less well strucured data, will they shoehorn it into JSON? I see occasional mentions of a schema language for JSON, will other languages follow? ...
Quick rules:
- JSON: program-to-program data format
- YAML (JSON superset): human-to-program data format
- XML: document markup format
Explanation:
JSON's sole role is to serialize object-oriented data using the data types common to most programming languages: lists, hashes, and scalars, and for that purpose it really can't be beaten or improved upon. To wit "JSON has no version number [as] no revisions to the JSON grammar are anticipated". - Douglas Crockford (Can't beat that as a sign that you do your job perfectly)
XML was once sold as a data inter-change format, but consider the two most common use cases: Asynchronous client-server communication (AJAX) - JSON has pretty much replaced XML entirely (The X should really be a J), and web services: JSON has made XML a redundant alternative.
The other thing XML was widely used for was human writable/readable(?) data files for programs, but here too you have a more concise, more program-friendly, more human-friendly format in YAML, a JSON superset.
So for data representation, JSON beats XML across the board. What's left for XML then? Mixed-content document representation, which is what it was intended for.
Most newer web technologies work using JSON, so definitively a good reason for using JSON. A great advantage is that in XML you can represent in multiple different ways the same information, which in JSON is more straightforward.
Also JSON IMHO is much clearer than XML, which makes it for me a clear advantage. And if you are working with .NET, Json.NET is a clear winner to help you work with JSON.
참고URL : https://stackoverflow.com/questions/325085/when-to-prefer-json-over-xml
'IT박스' 카테고리의 다른 글
.NET에서 SmtpClient 객체의 사용자 이름과 비밀번호를 설정하는 방법은 무엇입니까? (0) | 2020.06.14 |
---|---|
Node.js에서 Python 함수를 호출하는 방법 (0) | 2020.06.14 |
폴더 대 폴더 (또는 폴더 ')의 의미 (0) | 2020.06.14 |
테이블을 데이터 프레임으로 변환하는 방법 (0) | 2020.06.14 |
IntelliJ IDEA가 인터페이스에서 Java로 클래스 구현으로 이동 (0) | 2020.06.14 |