← āļāļĨāļąāļšāđ„āļ›āļ„āļđāđˆāļĄāļ·āļ­

JSON āđ€āļ—āļĩāļĒāļšāļāļąāļš XML: āļ„āļ§āļēāļĄāđāļ•āļāļ•āđˆāļēāļ‡āļ—āļĩāđˆāļŠāļģāļ„āļąāļāđāļĨāļ°āđ€āļĄāļ·āđˆāļ­āđƒāļ”āļ„āļ§āļĢāđƒāļŠāđ‰āđāļ•āđˆāļĨāļ°āđāļšāļš

· āđāļ—āđ‡āļ: json, xml, json-vs-xml, data-formats, api-design, web-development

JSON āđ€āļ—āļĩāļĒāļšāļāļąāļš XML: āļ āļēāļžāļĢāļ§āļĄ

JSON (JavaScript Object Notation) āđāļĨāļ° XML (eXtensible Markup Language) āļ•āđˆāļēāļ‡āļāđ‡āđ€āļ›āđ‡āļ™āļĢāļđāļ›āđāļšāļšāļāļēāļĢāđāļĨāļāđ€āļ›āļĨāļĩāđˆāļĒāļ™āļ‚āđ‰āļ­āļĄāļđāļĨāđāļšāļšāļ‚āđ‰āļ­āļ„āļ§āļēāļĄ āđāļ•āđˆāđƒāļŠāđ‰āļ§āļīāļ˜āļĩāļāļēāļĢāļˆāļąāļ”āđ‚āļ„āļĢāļ‡āļŠāļĢāđ‰āļēāļ‡āļ‚āđ‰āļ­āļĄāļđāļĨāļ—āļĩāđˆāđāļ•āļāļ•āđˆāļēāļ‡āļāļąāļ™āđ‚āļ”āļĒāļžāļ·āđ‰āļ™āļāļēāļ™ JSON āđƒāļŦāđ‰āļ„āļ§āļēāļĄāļŠāļģāļ„āļąāļāļāļąāļšāļ„āļ§āļēāļĄāđ€āļĢāļĩāļĒāļšāļ‡āđˆāļēāļĒāđāļĨāļ°āļ„āļ§āļēāļĄāļāļĢāļ°āļŠāļąāļš āđƒāļ™āļ‚āļ“āļ°āļ—āļĩāđˆ XML āđ€āļ™āđ‰āļ™āļ„āļ§āļēāļĄāļŠāļēāļĄāļēāļĢāļ–āđƒāļ™āļāļēāļĢāļ‚āļĒāļēāļĒ āļ‚āđ‰āļ­āļĄāļđāļĨāđ€āļĄāļ•āļē āđāļĨāļ°āļ„āļļāļ“āļŠāļĄāļšāļąāļ•āļīāļ—āļĩāđˆāđ€āļ™āđ‰āļ™āđ€āļ­āļāļŠāļēāļĢāđ€āļ›āđ‡āļ™āļĻāļđāļ™āļĒāđŒāļāļĨāļēāļ‡

āļāļēāļĢāđ€āļ›āļĢāļĩāļĒāļšāđ€āļ—āļĩāļĒāļšāļ™āļĩāđ‰āļ•āļĢāļ§āļˆāļŠāļ­āļšāļ„āļ§āļēāļĄāđāļ•āļāļ•āđˆāļēāļ‡āļ—āļĩāđˆāļŠāļģāļ„āļąāļāđ€āļžāļ·āđˆāļ­āļŠāđˆāļ§āļĒāđƒāļŦāđ‰āļ„āļļāļ“āđ€āļĨāļ·āļ­āļāļĢāļđāļ›āđāļšāļšāļ—āļĩāđˆāđ€āļŦāļĄāļēāļ°āļŠāļĄāļŠāļģāļŦāļĢāļąāļšāđ‚āļ„āļĢāļ‡āļāļēāļĢāļ•āđˆāļ­āđ„āļ›āļ‚āļ­āļ‡āļ„āļļāļ“

āļāļēāļĢāđ€āļ›āļĢāļĩāļĒāļšāđ€āļ—āļĩāļĒāļšāđ„āļ§āļĒāļēāļāļĢāļ“āđŒ

āļ—āļąāđ‰āļ‡āļŠāļ­āļ‡āļĢāļđāļ›āđāļšāļšāļŠāļēāļĄāļēāļĢāļ–āđāļŠāļ”āļ‡āļ‚āđ‰āļ­āļĄāļđāļĨāđ€āļ”āļĩāļĒāļ§āļāļąāļ™āđƒāļ™āļ§āļīāļ˜āļĩāļ—āļĩāđˆāđāļ•āļāļ•āđˆāļēāļ‡āļāļąāļ™āļĄāļēāļ:

JSON:

{
  "book": {
    "title": "The Pragmatic Programmer",
    "author": "Andy Hunt",
    "year": 1999,
    "genres": ["Programming", "Software Engineering"],
    "inStock": true
  }
}

XML:

<book>
  <title>The Pragmatic Programmer</title>
  <author>Andy Hunt</author>
  <year>1999</year>
  <genres>
    <genre>Programming</genre>
    <genre>Software Engineering</genre>
  </genres>
  <inStock>true</inStock>
</book>

āļ„āļ§āļēāļĄāđāļ•āļāļ•āđˆāļēāļ‡āļ—āļēāļ‡āđ„āļ§āļĒāļēāļāļĢāļ“āđŒāļ—āļĩāđˆāļŠāļģāļ„āļąāļ

| Feature | JSON | XML | |---------|------|-----| | āļĢāļđāļ›āđāļšāļšāđ„āļ§āļĒāļēāļāļĢāļ“āđŒ | āļ„āļđāđˆ Key/value | āđāļ—āđ‡āļāđ€āļ›āļīāļ”/āļ›āļīāļ” | | āļāļēāļĢāļĢāļ°āļšāļļāļ›āļĢāļ°āđ€āļ āļ—āļ‚āđ‰āļ­āļĄāļđāļĨ | āļ›āļĢāļ°āđ€āļ āļ— native (string, number, boolean, null, array, object) | āļ„āđˆāļēāļ—āļąāđ‰āļ‡āļŦāļĄāļ”āđ€āļ›āđ‡āļ™āļ‚āđ‰āļ­āļ„āļ§āļēāļĄ; āļāļēāļĢāļĢāļ°āļšāļļāļ›āļĢāļ°āđ€āļ āļ—āļœāđˆāļēāļ™ schema (XSD) | | Attributes | āđ„āļĄāđˆāļĢāļ­āļ‡āļĢāļąāļšāđ‚āļ”āļĒāļ•āļĢāļ‡ | āļĢāļ­āļ‡āļĢāļąāļšāļœāđˆāļēāļ™ attributes āļ‚āļ­āļ‡āđāļ—āđ‡āļ (<book id="123">) | | āļ„āļ§āļēāļĄāļ„āļīāļ”āđ€āļŦāđ‡āļ™ | āđ„āļĄāđˆāļĢāļ­āļ‡āļĢāļąāļš | āļĢāļ­āļ‡āļĢāļąāļšāļ”āđ‰āļ§āļĒ <!-- comment --> | | āļ‚āđ‰āļ­āļĄāļđāļĨāđ€āļĄāļ•āļē | āļˆāļģāļāļąāļ” | āļŦāļĨāļēāļāļŦāļĨāļēāļĒ (namespaces, processing instructions, schemas) | | āļāļēāļĢāđāļŠāļ”āļ‡ array | āļ›āļĢāļ°āđ€āļ āļ— array native [] | āļ­āļ‡āļ„āđŒāļ›āļĢāļ°āļāļ­āļšāļ‹āđ‰āļģāļŦāļĢāļ·āļ­āđāļ—āđ‡āļ wrapper āļ—āļĩāđˆāļāļģāļŦāļ™āļ”āđ€āļ­āļ‡ |

āļāļēāļĢāđ€āļ›āļĢāļĩāļĒāļšāđ€āļ—āļĩāļĒāļšāļ‚āļ™āļēāļ”āļ‚āđ‰āļ­āļĄāļđāļĨ

JSON āļĄāļĩāļ‚āļ™āļēāļ”āļāļ°āļ—āļąāļ”āļĢāļąāļ”āļāļ§āđˆāļē XML āļ­āļĒāđˆāļēāļ‡āļĄāļĩāļ™āļąāļĒāļŠāļģāļ„āļąāļāļŠāļģāļŦāļĢāļąāļšāļ‚āđ‰āļ­āļĄāļđāļĨāļ—āļĩāđˆāđ€āļ—āļĩāļĒāļšāđ€āļ—āđˆāļēāļāļąāļ™:

  • āđ„āļĄāđˆāļĄāļĩāđāļ—āđ‡āļāļ›āļīāļ” -- JSON āđƒāļŠāđ‰ } āđāļĨāļ° ] āđāļ—āļ™āđāļ—āđ‡āļāļ›āļīāļ”āļ—āļĩāđˆ verbose āđ€āļŠāđˆāļ™ </book>
  • āđ„āļĄāđˆāļĄāļĩāđ„āļ§āļĒāļēāļāļĢāļ“āđŒ attributes -- XML attributes āđ€āļžāļīāđˆāļĄāļ„āđˆāļēāđƒāļŠāđ‰āļˆāđˆāļēāļĒāļ—āļēāļ‡āđ„āļ§āļĒāļēāļāļĢāļ“āđŒ
  • boilerplate āļ™āđ‰āļ­āļĒāļ—āļĩāđˆāļŠāļļāļ” -- JSON āđ„āļĄāđˆāļĄāļĩāļāļēāļĢāļ›āļĢāļ°āļāļēāļĻ namespace, DOCTYPE āđāļĨāļ° XML prolog

āļŠāļģāļŦāļĢāļąāļšāļāļēāļĢāļ•āļ­āļšāļāļĨāļąāļš API āļ—āļąāđˆāļ§āđ„āļ› JSON āļĄāļąāļ āđ€āļĨāđ‡āļāļāļ§āđˆāļē 30-40% āđ€āļĄāļ·āđˆāļ­āđ€āļ—āļĩāļĒāļšāļāļąāļš XML āļ—āļĩāđˆāđ€āļ—āļĩāļĒāļšāđ€āļ—āđˆāļēāļāļąāļ™ āļŠāļīāđˆāļ‡āļ™āļĩāđ‰āđāļ›āļĨāđ‚āļ”āļĒāļ•āļĢāļ‡āđ€āļ›āđ‡āļ™āļāļēāļĢāļ–āđˆāļēāļĒāđ‚āļ­āļ™āļœāđˆāļēāļ™āđ€āļ„āļĢāļ·āļ­āļ‚āđˆāļēāļĒāļ—āļĩāđˆāđ€āļĢāđ‡āļ§āļ‚āļķāđ‰āļ™āđāļĨāļ°āļ„āđˆāļēāđƒāļŠāđ‰āļˆāđˆāļēāļĒāđāļšāļ™āļ”āđŒāļ§āļīāļ”āļ—āđŒāļ—āļĩāđˆāļ•āđˆāļģāļĨāļ‡ āđ‚āļ”āļĒāđ€āļ‰āļžāļēāļ°āđƒāļ™āļ‚āļ™āļēāļ”āđƒāļŦāļāđˆ

āļ„āļ§āļēāļĄāđ€āļĢāđ‡āļ§āđƒāļ™āļāļēāļĢ Parse

JSON parser āđ‚āļ”āļĒāļ—āļąāđˆāļ§āđ„āļ›āđ€āļĢāđ‡āļ§āļāļ§āđˆāļē XML parser āļ”āđ‰āļ§āļĒāļŦāļĨāļēāļĒāđ€āļŦāļ•āļļāļœāļĨ:

  1. āđ„āļ§āļĒāļēāļāļĢāļ“āđŒāļ—āļĩāđˆāļ‡āđˆāļēāļĒāļāļ§āđˆāļē -- āđ„āļ§āļĒāļēāļāļĢāļ“āđŒāļ‚āļ­āļ‡ JSON āđ€āļ›āđ‡āļ™āđ€āļžāļĩāļĒāļ‡āđ€āļĻāļĐāđ€āļŠāļĩāđ‰āļĒāļ§āļ‚āļ­āļ‡āļ„āļ§āļēāļĄāļ‹āļąāļšāļ‹āđ‰āļ­āļ™āļ‚āļ­āļ‡ XML āļ—āļģāđƒāļŦāđ‰āļāļēāļĢāđ€āļ‚āļĩāļĒāļ™ parser āļ—āļģāđ„āļ”āđ‰āļ‡āđˆāļēāļĒāđāļĨāļ°āđ€āļĢāđ‡āļ§āļ‚āļķāđ‰āļ™
  2. āđ„āļĄāđˆāļĄāļĩāļāļēāļĢāđāļāđ‰āđ„āļ‚ namespace -- XML āļ•āđ‰āļ­āļ‡āļāļēāļĢāļāļēāļĢāđāļāđ‰āđ„āļ‚ namespace URI āļ‹āļķāđˆāļ‡āđ€āļžāļīāđˆāļĄāļ„āđˆāļēāđƒāļŠāđ‰āļˆāđˆāļēāļĒ
  3. āļāļēāļĢāđāļĄāļ›āļ›āļĢāļ°āđ€āļ āļ— native -- JSON āđāļĄāļ›āđ‚āļ”āļĒāļ•āļĢāļ‡āļāļąāļšāđ‚āļ„āļĢāļ‡āļŠāļĢāđ‰āļēāļ‡āļ‚āđ‰āļ­āļĄāļđāļĨ native āđƒāļ™ JavaScript, Python āđāļĨāļ°āļ āļēāļĐāļēāļ­āļ·āđˆāļ™āđ† XML āļ•āđ‰āļ­āļ‡āļāļēāļĢāļāļēāļĢāđāļĄāļ›āđ€āļžāļīāđˆāļĄāđ€āļ•āļīāļĄāļŦāļĢāļ·āļ­āļāļēāļĢ traverse DOM

āļāļēāļĢāļ§āļąāļ”āļ›āļĢāļ°āļŠāļīāļ—āļ˜āļīāļ āļēāļžāđāļŠāļ”āļ‡āļ­āļĒāđˆāļēāļ‡āļŠāļĄāđˆāļģāđ€āļŠāļĄāļ­āļ§āđˆāļē JSON parse āđ€āļĢāđ‡āļ§āļāļ§āđˆāļē 2-10 āđ€āļ—āđˆāļē āđ€āļĄāļ·āđˆāļ­āđ€āļ—āļĩāļĒāļšāļāļąāļš XML āļ‚āļķāđ‰āļ™āļ­āļĒāļđāđˆāļāļąāļšāļ āļēāļĐāļēāđāļĨāļ°āđ„āļĨāļšāļĢāļēāļĢāļĩāļ—āļĩāđˆāđƒāļŠāđ‰

āļāļēāļĢāļŠāļ™āļąāļšāļŠāļ™āļļāļ™āļˆāļēāļāļĢāļ°āļšāļšāļ™āļīāđ€āļ§āļĻāđāļĨāļ°āļ āļēāļĐāļē

JSON

  • āļĢāļ­āļ‡āļĢāļąāļš native āđƒāļ™ JavaScript (JSON.parse(), JSON.stringify())
  • āļĢāļ­āļ‡āļĢāļąāļšāđƒāļ™āļ•āļąāļ§āļŦāļĢāļ·āļ­āļœāđˆāļēāļ™āđ„āļĨāļšāļĢāļēāļĢāļĩāđƒāļ™āļ—āļļāļāļ āļēāļĐāļēāđ‚āļ›āļĢāđāļāļĢāļĄāļĄāļīāđˆāļ‡āļŦāļĨāļąāļ
  • āļĢāļđāļ›āđāļšāļšāļ—āļĩāđˆāđ‚āļ”āļ”āđ€āļ”āđˆāļ™āļŠāļģāļŦāļĢāļąāļš REST API, āļāļēāļ™āļ‚āđ‰āļ­āļĄāļđāļĨ NoSQL (MongoDB, CouchDB) āđāļĨāļ° web services
  • āļĢāļ°āļšāļšāļ™āļīāđ€āļ§āļĻāđ€āļ„āļĢāļ·āđˆāļ­āļ‡āļĄāļ·āļ­āļ—āļĩāđˆāđ€āļĨāđ‡āļāļāļ§āđˆāļē āđ€āļ™āđ‰āļ™āļāļēāļĢāļ•āļĢāļ§āļˆāļŠāļ­āļš āļāļēāļĢāļˆāļąāļ”āļĢāļđāļ›āđāļšāļš āđāļĨāļ° schema (JSON Schema)

XML

  • āļĢāļ­āļ‡āļĢāļąāļšāļĢāļ°āļ”āļąāļšāđ€āļŸāļīāļĢāđŒāļŠāļ„āļĨāļēāļŠāđƒāļ™āļĢāļ°āļšāļšāļ™āļīāđ€āļ§āļĻāļ­āļ‡āļ„āđŒāļāļĢ (Java/JAXB, .NET/XmlSerializer)
  • āļˆāļģāđ€āļ›āđ‡āļ™āļŠāļģāļŦāļĢāļąāļšāļĢāļđāļ›āđāļšāļšāļ—āļĩāđˆāđ€āļ™āđ‰āļ™āđ€āļ­āļāļŠāļēāļĢ (XHTML, SVG, RSS/Atom, SOAP, āļĢāļđāļ›āđāļšāļšāđ„āļŸāļĨāđŒ Office)
  • āļĢāļ°āļšāļšāļ™āļīāđ€āļ§āļĻāļ‚āļ­āļ‡āđ€āļ—āļ„āđ‚āļ™āđ‚āļĨāļĒāļĩāļ—āļĩāđˆāđ€āļāļĩāđˆāļĒāļ§āļ‚āđ‰āļ­āļ‡āļ—āļĩāđˆāļŦāļĨāļēāļāļŦāļĨāļēāļĒ: XSLT, XPath, XQuery, XSD, XInclude
  • āđƒāļŠāđ‰āļāļąāļ™āļ­āļĒāđˆāļēāļ‡āđāļžāļĢāđˆāļŦāļĨāļēāļĒāđƒāļ™āļāļēāļĢāđ€āļœāļĒāđāļžāļĢāđˆ āļāļēāļĢāđ€āļ‡āļīāļ™ āļāļēāļĢāļ”āļđāđāļĨāļŠāļļāļ‚āļ āļēāļž (HL7 FHIR) āđāļĨāļ°āļĢāļ°āļšāļšāļ­āļ‡āļ„āđŒāļāļĢāđ€āļāđˆāļē

āđ€āļĄāļ·āđˆāļ­āđƒāļ”āļ„āļ§āļĢāđƒāļŠāđ‰ JSON

JSON āđ€āļ›āđ‡āļ™āļ•āļąāļ§āđ€āļĨāļ·āļ­āļāļ—āļĩāđˆāļ”āļĩāļāļ§āđˆāļēāđ€āļĄāļ·āđˆāļ­:

  • āļŠāļĢāđ‰āļēāļ‡ RESTful āļŦāļĢāļ·āļ­ GraphQL API -- JSON āđ€āļ›āđ‡āļ™āļĄāļēāļ•āļĢāļāļēāļ™āļŠāļģāļŦāļĢāļąāļš Web API āļŠāļĄāļąāļĒāđƒāļŦāļĄāđˆ
  • āļžāļąāļ’āļ™āļēāđ€āļ§āđ‡āļšāļŦāļĢāļ·āļ­āđāļ­āļ›āļžāļĨāļīāđ€āļ„āļŠāļąāļ™āļĄāļ·āļ­āļ–āļ·āļ­ -- āđ€āļšāļĢāļēāļ§āđŒāđ€āļ‹āļ­āļĢāđŒāļĢāļ­āļ‡āļĢāļąāļš native āđāļĨāļ°āļāļēāļĢ parse āļ—āļĩāđˆāđ€āļšāļē
  • āļˆāļąāļ”āđ€āļāđ‡āļšāđ„āļŸāļĨāđŒāļāļģāļŦāļ™āļ”āļ„āđˆāļē -- ESLint, Prettier, webpack āđāļĨāļ°āđ€āļ„āļĢāļ·āđˆāļ­āļ‡āļĄāļ·āļ­āļ™āļąāļšāđ„āļĄāđˆāļ–āđ‰āļ§āļ™āđƒāļŠāđ‰ JSON
  • āļ—āļģāļ‡āļēāļ™āļāļąāļšāļāļēāļ™āļ‚āđ‰āļ­āļĄāļđāļĨ NoSQL -- MongoDB, CouchDB āđāļĨāļ° Firebase āđƒāļŠāđ‰āđ‚āļĄāđ€āļ”āļĨāđ€āļ­āļāļŠāļēāļĢāļ„āļĨāđ‰āļēāļĒ JSON
  • āļ›āļĢāļąāļšāđƒāļŦāđ‰āđ€āļŦāļĄāļēāļ°āļŠāļĄāļŠāļģāļŦāļĢāļąāļšāđāļšāļ™āļ”āđŒāļ§āļīāļ”āļ—āđŒ -- āļ‚āļ™āļēāļ”āļ—āļĩāđˆāļāļ°āļ—āļąāļ”āļĢāļąāļ”āļ‚āļ­āļ‡ JSON āļĨāļ”āļ„āđˆāļēāđƒāļŠāđ‰āļˆāđˆāļēāļĒāđ€āļ„āļĢāļ·āļ­āļ‚āđˆāļēāļĒ
  • āļŠāļĢāđ‰āļēāļ‡āļ•āđ‰āļ™āđāļšāļšāļŦāļĢāļ·āļ­āļžāļąāļ’āļ™āļēāļ­āļĒāđˆāļēāļ‡āļĢāļ§āļ”āđ€āļĢāđ‡āļ§ -- āļ„āļ§āļēāļĄāđ€āļĢāļĩāļĒāļšāļ‡āđˆāļēāļĒāļ‚āļ­āļ‡ JSON āđ€āļĢāđˆāļ‡āļāļēāļĢāļ—āļģāļ‹āđ‰āļģ

āđ€āļĄāļ·āđˆāļ­āđƒāļ”āļ„āļ§āļĢāđƒāļŠāđ‰ XML

XML āļĒāļąāļ‡āļ„āļ‡āđ€āļ›āđ‡āļ™āļ•āļąāļ§āđ€āļĨāļ·āļ­āļāļ—āļĩāđˆāļ”āļĩāļāļ§āđˆāļēāđ€āļĄāļ·āđˆāļ­:

  • āļāļēāļĢāđāļĨāļāđ€āļ›āļĨāļĩāđˆāļĒāļ™āđ€āļ­āļāļŠāļēāļĢāļ—āļĩāđˆāļ‹āļąāļšāļ‹āđ‰āļ­āļ™ -- XML āđ‚āļ”āļ”āđ€āļ”āđˆāļ™āļāļąāļšāđ€āļ­āļāļŠāļēāļĢāļ—āļĩāđˆāļĄāļĩāđ€āļ™āļ·āđ‰āļ­āļŦāļēāļœāļŠāļĄ āļ‚āđ‰āļ­āļĄāļđāļĨāđ€āļĄāļ•āļē āđāļĨāļ°āļāļŽāđ‚āļ„āļĢāļ‡āļŠāļĢāđ‰āļēāļ‡
  • āļāļēāļĢāļœāļŠāļēāļ™āļĢāļ§āļĄāļĢāļ°āļ”āļąāļšāļ­āļ‡āļ„āđŒāļāļĢ -- SOAP web services, āļŠāđˆāļ§āļ™āļ•āđˆāļ­āļ›āļĢāļ°āļŠāļēāļ™āļĢāļ°āļšāļšāđ€āļāđˆāļē āđāļĨāļ°āļāļēāļĢāđāļĨāļāđ€āļ›āļĨāļĩāđˆāļĒāļ™āļ‚āđ‰āļ­āļĄāļđāļĨ B2B
  • āļāļēāļĢāļ›āļāļīāļšāļąāļ•āļīāļ•āļēāļĄāļĄāļēāļ•āļĢāļāļēāļ™ -- āļĄāļēāļ•āļĢāļāļēāļ™āļ­āļļāļ•āļŠāļēāļŦāļāļĢāļĢāļĄāļˆāļģāļ™āļ§āļ™āļĄāļēāļ (SVG, MathML, RSS, Atom, XBRL) āđ€āļ›āđ‡āļ™āđāļšāļš XML
  • āļ„āļ§āļēāļĄāļ•āđ‰āļ­āļ‡āļāļēāļĢāļ‚āđ‰āļ­āļĄāļđāļĨāđ€āļĄāļ•āļēāļ—āļĩāđˆāļ„āļĢāļ­āļšāļ„āļĨāļļāļĄ -- XML namespaces, attributes āđāļĨāļ° processing instructions āđƒāļŦāđ‰āļ„āļ§āļēāļĄāļŠāļēāļĄāļēāļĢāļ–āļ”āđ‰āļēāļ™āļ‚āđ‰āļ­āļĄāļđāļĨāđ€āļĄāļ•āļēāļ—āļĩāđˆāļŦāļĨāļēāļāļŦāļĨāļēāļĒ
  • āđ€āļ™āļ·āđ‰āļ­āļŦāļēāļŦāļĨāļēāļĒāļ āļēāļĐāļē -- āđ€āļ„āļĢāļ·āđˆāļ­āļ‡āļĄāļ·āļ­ i18n āđāļĨāļ° localization āļ—āļĩāđˆāđ€āļ•āļīāļšāđ‚āļ•āđ€āļ•āđ‡āļĄāļ—āļĩāđˆāļ‚āļ­āļ‡ XML
  • āđ€āļ§āļīāļĢāđŒāļāđ‚āļŸāļĨāļ§āđŒāļ—āļĩāđˆāļ‚āļąāļšāđ€āļ„āļĨāļ·āđˆāļ­āļ™āļ”āđ‰āļ§āļĒāļāļēāļĢāđāļ›āļĨāļ‡ -- XSLT āļŠāđˆāļ§āļĒāđƒāļŦāđ‰ pipeline āļāļēāļĢāđāļ›āļĨāļ‡āđ€āļ­āļāļŠāļēāļĢāļ—āļĩāđˆāļ—āļĢāļ‡āļžāļĨāļąāļ‡

āļāļēāļĢāļ•āļąāļ”āļŠāļīāļ™āđƒāļˆ: āđ€āļĄāļ—āļĢāļīāļāļ‹āđŒāļāļēāļĢāļ•āļąāļ”āļŠāļīāļ™āđƒāļˆ

| Factor | JSON | XML | |--------|------|-----| | API development | Best choice | Legacy only | | Configuration files | Best choice | Overkill | | Enterprise integration | Possible | Best choice | | Document storage | Limited | Best choice | | Mobile/web apps | Best choice | Avoid | | Big data / streaming | Best choice | Avoid | | Mixed content documents | Not suitable | Best choice | | Schema validation | JSON Schema | XSD (more mature) |

āļšāļ—āļŠāļĢāļļāļ›

āļŠāļģāļŦāļĢāļąāļšāļŠāļ–āļēāļ™āļāļēāļĢāļ“āđŒāļāļēāļĢāļžāļąāļ’āļ™āļēāđ€āļ§āđ‡āļšāļŠāļĄāļąāļĒāđƒāļŦāļĄāđˆāļŠāđˆāļ§āļ™āđƒāļŦāļāđˆ — REST API, āđ„āļŸāļĨāđŒāļāļģāļŦāļ™āļ”āļ„āđˆāļē, āļ‚āđ‰āļ­āļĄāļđāļĨāđāļ­āļ›āļĄāļ·āļ­āļ–āļ·āļ­ â€” JSON āđ€āļ›āđ‡āļ™āļœāļđāđ‰āļŠāļ™āļ°āļ—āļĩāđˆāļŠāļąāļ”āđ€āļˆāļ™āđ€āļ™āļ·āđˆāļ­āļ‡āļˆāļēāļāļ„āļ§āļēāļĄāđ€āļĢāļĩāļĒāļšāļ‡āđˆāļēāļĒ āļ›āļĢāļ°āļŠāļīāļ—āļ˜āļīāļ āļēāļž āđāļĨāļ°āļāļēāļĢāļŠāļ­āļ”āļ„āļĨāđ‰āļ­āļ‡āļāļąāļšāļĢāļ°āļšāļšāļ™āļīāđ€āļ§āļĻ XML āļĒāļąāļ‡āļ„āļ‡āļˆāļģāđ€āļ›āđ‡āļ™āđƒāļ™āļšāļĢāļīāļšāļ—āļ­āļ‡āļ„āđŒāļāļĢ āđāļ­āļ›āļžāļĨāļīāđ€āļ„āļŠāļąāļ™āļ—āļĩāđˆāđ€āļ™āđ‰āļ™āđ€āļ­āļāļŠāļēāļĢ āđāļĨāļ°āļ­āļļāļ•āļŠāļēāļŦāļāļĢāļĢāļĄāļ—āļĩāđˆāļĄāļĩāļĄāļēāļ•āļĢāļāļēāļ™ XML āļ—āļĩāđˆāļˆāļąāļ”āļ•āļąāđ‰āļ‡āļ‚āļķāđ‰āļ™

āđƒāļŠāđ‰ JSON formatter āđāļĨāļ° validator āđ€āļžāļ·āđˆāļ­āđƒāļŦāđ‰āđāļ™āđˆāđƒāļˆāļ§āđˆāļēāļ‚āđ‰āļ­āļĄāļđāļĨ JSON āļ‚āļ­āļ‡āļ„āļļāļ“āļŠāļ°āļ­āļēāļ” āļ–āļđāļāļ•āđ‰āļ­āļ‡ āđāļĨāļ°āļĄāļĩāđ‚āļ„āļĢāļ‡āļŠāļĢāđ‰āļēāļ‡āļ—āļĩāđˆāļ”āļĩāļŠāļģāļŦāļĢāļąāļšāļ—āļļāļāļāļĢāļ“āļĩāļāļēāļĢāđƒāļŠāđ‰āļ‡āļēāļ™

JSON āđ€āļ—āļĩāļĒāļšāļāļąāļš XML: āļ„āļ§āļēāļĄāđāļ•āļāļ•āđˆāļēāļ‡āļ—āļĩāđˆāļŠāļģāļ„āļąāļāđāļĨāļ°āđ€āļĄāļ·āđˆāļ­āđƒāļ”āļ„āļ§āļĢāđƒāļŠāđ‰āđāļ•āđˆāļĨāļ°āđāļšāļš - CoolTool