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

JSON āļ„āļ·āļ­āļ­āļ°āđ„āļĢ? āļ„āļđāđˆāļĄāļ·āļ­āļ‰āļšāļąāļšāļŠāļĄāļšāļđāļĢāļ“āđŒāļŠāļģāļŦāļĢāļąāļšāļœāļđāđ‰āđ€āļĢāļīāđˆāļĄāļ•āđ‰āļ™

· āđāļ—āđ‡āļ: json, what-is-json, json-syntax, json-data-types, web-development

JSON āļ„āļ·āļ­āļ­āļ°āđ„āļĢ?

JSON (JavaScript Object Notation) āđ€āļ›āđ‡āļ™āļĢāļđāļ›āđāļšāļšāļāļēāļĢāđāļĨāļāđ€āļ›āļĨāļĩāđˆāļĒāļ™āļ‚āđ‰āļ­āļĄāļđāļĨāđāļšāļšāļ‚āđ‰āļ­āļ„āļ§āļēāļĄāļ—āļĩāđˆāļĄāļĩāļ™āđ‰āļģāļŦāļ™āļąāļāđ€āļšāļē āļ­āļ­āļāđāļšāļšāđƒāļŦāđ‰āļ‡āđˆāļēāļĒāļŠāļģāļŦāļĢāļąāļšāļĄāļ™āļļāļĐāļĒāđŒāđƒāļ™āļāļēāļĢāļ­āđˆāļēāļ™āđāļĨāļ°āđ€āļ‚āļĩāļĒāļ™ āđāļĨāļ°āļ‡āđˆāļēāļĒāļŠāļģāļŦāļĢāļąāļšāđ€āļ„āļĢāļ·āđˆāļ­āļ‡āļˆāļąāļāļĢāđƒāļ™āļāļēāļĢ parse āđāļĨāļ°āļŠāļĢāđ‰āļēāļ‡ āļĄāļąāļ™āļ–āļđāļāļžāļąāļ’āļ™āļēāļĄāļēāļˆāļēāļāđ„āļ§āļĒāļēāļāļĢāļ“āđŒ JavaScript object literal āđāļ•āđˆāđ„āļ”āđ‰āļāļĨāļēāļĒāđ€āļ›āđ‡āļ™āļĄāļēāļ•āļĢāļāļēāļ™āļ—āļĩāđˆāđ„āļĄāđˆāļ‚āļķāđ‰āļ™āļāļąāļšāļ āļēāļĐāļē āļ‹āļķāđˆāļ‡āđ„āļ”āđ‰āļĢāļąāļšāļāļēāļĢāļŠāļ™āļąāļšāļŠāļ™āļļāļ™āļˆāļēāļāļ āļēāļĐāļēāđ‚āļ›āļĢāđāļāļĢāļĄāļĄāļīāđˆāļ‡āđāļ—āļšāļ—āļļāļāļ āļēāļĐāļē

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

āļāļŽāđ„āļ§āļĒāļēāļāļĢāļ“āđŒāļ‚āļ­āļ‡ JSON

JSON āļ›āļāļīāļšāļąāļ•āļīāļ•āļēāļĄāļŠāļļāļ”āļāļŽāđ„āļ§āļĒāļēāļāļĢāļ“āđŒāļ—āļĩāđˆāđ€āļ‚āđ‰āļĄāļ‡āļ§āļ”āđāļĨāļ°āļ™āđ‰āļ­āļĒāļ—āļĩāđˆāļŠāļļāļ”:

  • āļ‚āđ‰āļ­āļĄāļđāļĨāļ–āļđāļāļˆāļąāļ”āđ‚āļ„āļĢāļ‡āļŠāļĢāđ‰āļēāļ‡āđ€āļ›āđ‡āļ™ āļ„āļđāđˆ key/value
  • āļ„āļĩāļĒāđŒāļ—āļąāđ‰āļ‡āļŦāļĄāļ”āļ•āđ‰āļ­āļ‡āđ€āļ›āđ‡āļ™ āļŠāļ•āļĢāļīāļ‡āđƒāļ™āđ€āļ„āļĢāļ·āđˆāļ­āļ‡āļŦāļĄāļēāļĒāļ­āļąāļāļ›āļĢāļ°āļāļēāļĻāļ„āļđāđˆ (āđ„āļĄāđˆāļ­āļ™āļļāļāļēāļ•āđ€āļ„āļĢāļ·āđˆāļ­āļ‡āļŦāļĄāļēāļĒāļ­āļąāļāļ›āļĢāļ°āļāļēāļĻāđ€āļ”āļĩāđˆāļĒāļ§)
  • āļ„āļđāđˆ key/value āļ–āļđāļāļ„āļąāđˆāļ™āļ”āđ‰āļ§āļĒāđ€āļ„āļĢāļ·āđˆāļ­āļ‡āļŦāļĄāļēāļĒāļ—āļ§āļīāļ āļēāļ„ (:)
  • āļ„āļđāđˆāļ–āļđāļāļ„āļąāđˆāļ™āļ”āđ‰āļ§āļĒāđ€āļ„āļĢāļ·āđˆāļ­āļ‡āļŦāļĄāļēāļĒāļˆāļļāļĨāļ āļēāļ„ (,)
  • āļ§āļ‡āđ€āļĨāđ‡āļšāļ›āļĩāļāļāļē {} āļ„āļĢāļ­āļš object
  • āļ§āļ‡āđ€āļĨāđ‡āļšāđ€āļŦāļĨāļĩāđˆāļĒāļĄ [] āļ„āļĢāļ­āļš array
  • āđ„āļĄāđˆāļ­āļ™āļļāļāļēāļ•āđ€āļ„āļĢāļ·āđˆāļ­āļ‡āļŦāļĄāļēāļĒāļˆāļļāļĨāļ āļēāļ„āļ•āđˆāļ­āļ—āđ‰āļēāļĒ
  • āđ„āļĄāđˆāļ­āļ™āļļāļāļēāļ•āļ„āļ§āļēāļĄāļ„āļīāļ”āđ€āļŦāđ‡āļ™āđƒāļ™ JSON āļ—āļĩāđˆāđ€āļ‚āđ‰āļĄāļ‡āļ§āļ”

āļ•āļąāļ§āļ­āļĒāđˆāļēāļ‡ JSON āļ—āļĩāđˆāļ–āļđāļāļ•āđ‰āļ­āļ‡

{
  "name": "Jane Smith",
  "age": 28,
  "isEmployed": true,
  "skills": ["JavaScript", "Python", "SQL"],
  "address": {
    "street": "123 Main Street",
    "city": "San Francisco",
    "zipCode": "94102"
  },
  "phoneNumbers": null
}

āļ•āļąāļ§āļ­āļĒāđˆāļēāļ‡ JSON āļ—āļĩāđˆāđ„āļĄāđˆāļ–āļđāļāļ•āđ‰āļ­āļ‡

āđ€āļ„āļĢāļ·āđˆāļ­āļ‡āļŦāļĄāļēāļĒāļˆāļļāļĨāļ āļēāļ„āļ•āđˆāļ­āļ—āđ‰āļēāļĒ (āđ„āļĄāđˆāļ–āļđāļāļ•āđ‰āļ­āļ‡):

{
  "name": "Jane",
  "age": 28,
}

āļ„āļĩāļĒāđŒāđƒāļ™āđ€āļ„āļĢāļ·āđˆāļ­āļ‡āļŦāļĄāļēāļĒāļ­āļąāļāļ›āļĢāļ°āļāļēāļĻāđ€āļ”āļĩāđˆāļĒāļ§ (āđ„āļĄāđˆāļ–āļđāļāļ•āđ‰āļ­āļ‡):

{ 'name': 'Jane' }

āļ„āļĩāļĒāđŒāđ„āļĄāđˆāļĄāļĩāđ€āļ„āļĢāļ·āđˆāļ­āļ‡āļŦāļĄāļēāļĒāļ­āļąāļāļ›āļĢāļ°āļāļēāļĻ (āđ„āļĄāđˆāļ–āļđāļāļ•āđ‰āļ­āļ‡):

{ name: "Jane" }

āļŠāļ™āļīāļ”āļ‚āđ‰āļ­āļĄāļđāļĨāļ‚āļ­āļ‡ JSON

JSON āļĢāļ­āļ‡āļĢāļąāļšāļŠāļ™āļīāļ”āļ‚āđ‰āļ­āļĄāļđāļĨāļŦāļāļ›āļĢāļ°āđ€āļ āļ—āļžāļ­āļ”āļĩ:

| Type | Description | Example | |------|-------------|---------| | String | āļ‚āđ‰āļ­āļ„āļ§āļēāļĄ Unicode āđƒāļ™āđ€āļ„āļĢāļ·āđˆāļ­āļ‡āļŦāļĄāļēāļĒāļ­āļąāļāļ›āļĢāļ°āļāļēāļĻāļ„āļđāđˆ | "Hello, world!" | | Number | āļˆāļģāļ™āļ§āļ™āđ€āļ•āđ‡āļĄāļŦāļĢāļ·āļ­āļ—āļĻāļ™āļīāļĒāļĄ | 42, 3.14, -7, 1.5e10 | | Boolean | āļˆāļĢāļīāļ‡āļŦāļĢāļ·āļ­āđ€āļ—āđ‡āļˆ | true, false | | Null | āļ„āđˆāļēāļ§āđˆāļēāļ‡āđ‚āļ”āļĒāđ€āļˆāļ•āļ™āļē | null | | Object | āļŠāļļāļ” key/value āļ—āļĩāđˆāđ„āļĄāđˆāđ€āļĢāļĩāļĒāļ‡āļĨāļģāļ”āļąāļš | {"key": "value"} | | Array | āļĢāļēāļĒāļāļēāļĢāļ„āđˆāļēāļ—āļĩāđˆāđ€āļĢāļĩāļĒāļ‡āļĨāļģāļ”āļąāļš | [1, 2, 3] |

āļŠāļīāđˆāļ‡āļ—āļĩāđˆāļ‚āļēāļ”āļŦāļēāļĒāđ„āļ›āļ­āļĒāđˆāļēāļ‡āđ€āļŦāđ‡āļ™āđ„āļ”āđ‰āļŠāļąāļ”: dates, timestamps, āļ‚āđ‰āļ­āļĄāļđāļĨāđ„āļšāļ™āļēāļĢāļĩ, undefined āđāļĨāļ°āļŸāļąāļ‡āļāđŒāļŠāļąāļ™āđ„āļĄāđˆāļĄāļĩāļāļēāļĢāđāļŠāļ”āļ‡āļœāļĨāđāļšāļš native āđƒāļ™ JSON āđ‚āļ”āļĒāļ—āļąāđˆāļ§āđ„āļ›āļ§āļąāļ™āļ—āļĩāđˆāļ–āļđāļāļˆāļąāļ”āđ€āļāđ‡āļšāđ€āļ›āđ‡āļ™āļŠāļ•āļĢāļīāļ‡ ISO 8601 āļ•āļēāļĄāđāļšāļšāđāļœāļ™

JSON āđ€āļ—āļĩāļĒāļšāļāļąāļšāļĢāļđāļ›āđāļšāļšāļ‚āđ‰āļ­āļĄāļđāļĨāļ­āļ·āđˆāļ™

JSON āļ­āļĒāļđāđˆāđ€āļ„āļĩāļĒāļ‡āļ‚āđ‰āļēāļ‡āļĢāļđāļ›āđāļšāļšāļāļēāļĢāđāļĨāļāđ€āļ›āļĨāļĩāđˆāļĒāļ™āļ‚āđ‰āļ­āļĄāļđāļĨāļ­āļ·āđˆāļ™āđ† āļŦāļĨāļēāļĒāļĢāļđāļ›āđāļšāļš āđāļ•āđˆāļĨāļ°āđāļšāļšāļĄāļĩāļ‚āđ‰āļ­āđāļĨāļāđ€āļ›āļĨāļĩāđˆāļĒāļ™:

  • JSON āđ€āļ—āļĩāļĒāļšāļāļąāļš XML: JSON āļāļĢāļ°āļŠāļąāļšāļāļ§āđˆāļēāđāļĨāļ° parse āđ„āļ”āđ‰āđ€āļĢāđ‡āļ§āļāļ§āđˆāļē XML āļĢāļ­āļ‡āļĢāļąāļš attributes, namespaces āđāļĨāļ° schemas (XSD) āđāļ•āđˆ verbose āļĄāļēāļāļāļ§āđˆāļēāļ­āļĒāđˆāļēāļ‡āļĄāļĩāļ™āļąāļĒāļŠāļģāļ„āļąāļ
  • JSON āđ€āļ—āļĩāļĒāļšāļāļąāļš YAML: YAML āļ­āđˆāļēāļ™āļ‡āđˆāļēāļĒāļāļ§āđˆāļēāļŠāļģāļŦāļĢāļąāļšāļĄāļ™āļļāļĐāļĒāđŒāļŠāļģāļŦāļĢāļąāļšāđ„āļŸāļĨāđŒāļāļģāļŦāļ™āļ”āļ„āđˆāļēāļžāļĢāđ‰āļ­āļĄāļĢāļ­āļ‡āļĢāļąāļšāļ„āļ§āļēāļĄāļ„āļīāļ”āđ€āļŦāđ‡āļ™ āđāļ•āđˆāđ„āļ§āļĒāļēāļāļĢāļ“āđŒāļ—āļĩāđˆāđ„āļ§āļ•āđˆāļ­āļāļēāļĢāļĒāđˆāļ­āļŦāļ™āđ‰āļēāļ­āļēāļˆāđ€āļāļīāļ”āļ‚āđ‰āļ­āļœāļīāļ”āļžāļĨāļēāļ”āđ„āļ”āđ‰āļ‡āđˆāļēāļĒ JSON āļžāļāļžāļēāđ„āļ”āđ‰āļĄāļēāļāļāļ§āđˆāļēāđāļĨāļ°āļĄāļĩāļāļēāļĢāļ•āļĢāļ§āļˆāļŠāļ­āļšāļ—āļĩāđˆāđ€āļ‚āđ‰āļĄāļ‡āļ§āļ”āļāļ§āđˆāļē
  • JSON āđ€āļ—āļĩāļĒāļšāļāļąāļš CSV: CSV āđāļšāļ™āđāļĨāļ°āđ€āļ›āđ‡āļ™āļ•āļēāļĢāļēāļ‡āđ€āļ—āđˆāļēāļ™āļąāđ‰āļ™ JSON āļĢāļ­āļ‡āļĢāļąāļšāļĨāļģāļ”āļąāļšāļŠāļąāđ‰āļ™āđāļšāļšāļ‹āđ‰āļ­āļ™āđāļĨāļ°āļŠāļ™āļīāļ”āļ‚āđ‰āļ­āļĄāļđāļĨāđāļšāļšāļœāļŠāļĄ
  • JSON āđ€āļ—āļĩāļĒāļšāļāļąāļš Protocol Buffers: Protobuf āđ€āļĨāđ‡āļāļāļ§āđˆāļēāđāļĨāļ°āđ€āļĢāđ‡āļ§āļāļ§āđˆāļēāļŠāļģāļŦāļĢāļąāļšāļāļēāļĢāļŠāļ·āđˆāļ­āļŠāļēāļĢāļĢāļ°āļŦāļ§āđˆāļēāļ‡āđ€āļ„āļĢāļ·āđˆāļ­āļ‡ āđāļ•āđˆāļ•āđ‰āļ­āļ‡āļāļēāļĢāļāļēāļĢāļāļģāļŦāļ™āļ” schema āđāļĨāļ°āļĄāļ™āļļāļĐāļĒāđŒāļ­āđˆāļēāļ™āđ„āļĄāđˆāđ„āļ”āđ‰

āļ—āļģāđ„āļĄ JSON āļ–āļķāļ‡āļ„āļĢāļ­āļ‡ Web API

āļŦāļĨāļēāļĒāļ›āļąāļˆāļˆāļąāļĒāļ­āļ˜āļīāļšāļēāļĒāļāļēāļĢāļ„āļĢāļ­āļ‡āļ•āļĨāļēāļ”āļ‚āļ­āļ‡ JSON āđƒāļ™āļāļēāļĢāļ­āļ­āļāđāļšāļš Web API:

  1. āļ āļēāļĐāļēāđāļžāļĢāđˆāļŦāļĨāļēāļĒ -- āļ—āļļāļāļ āļēāļĐāļēāļŦāļĨāļąāļāļĄāļĩ JSON parser āđāļšāļš native āļŦāļĢāļ·āļ­āļ—āļĩāđˆāļ”āļđāđāļĨāļ­āļĒāđˆāļēāļ‡āļ”āļĩ āļ‚āļˆāļąāļ”āļ„āļ§āļēāļĄāļĒāļļāđˆāļ‡āļĒāļēāļāđƒāļ™āļāļēāļĢāļœāļŠāļēāļ™āļĢāļ§āļĄ
  2. āđ€āļšāļĢāļēāļ§āđŒāđ€āļ‹āļ­āļĢāđŒāļĢāļ­āļ‡āļĢāļąāļšāđ‚āļ”āļĒāļ•āļĢāļ‡ -- JSON.parse() āđāļĨāļ° JSON.stringify() āļ‚āļ­āļ‡ JavaScript āļ—āļģāđƒāļŦāđ‰ JSON āđ€āļ›āđ‡āļ™āļ•āļąāļ§āđ€āļĨāļ·āļ­āļāļ—āļĩāđˆāđ€āļ›āđ‡āļ™āļ˜āļĢāļĢāļĄāļŠāļēāļ•āļīāļŠāļģāļŦāļĢāļąāļšāđ€āļ§āđ‡āļšāđāļ­āļ›āļžāļĨāļīāđ€āļ„āļŠāļąāļ™
  3. āđāļšāļ™āļ”āđŒāļ§āļīāļ”āļ—āđŒāļ™āđ‰āļ­āļĒāļ—āļĩāđˆāļŠāļļāļ” -- āđ„āļ§āļĒāļēāļāļĢāļ“āđŒāļ—āļĩāđˆāđ€āļšāļēāļ‚āļ­āļ‡ JSON āļŠāļĢāđ‰āļēāļ‡ payload āļ—āļĩāđˆāđ€āļĨāđ‡āļāļāļ§āđˆāļē XML āļĨāļ”āļ„āļ§āļēāļĄāļŦāļ™āđˆāļ§āļ‡āđāļĨāļ°āļ„āđˆāļēāđƒāļŠāđ‰āļˆāđˆāļēāļĒāđāļšāļ™āļ”āđŒāļ§āļīāļ”āļ—āđŒ
  4. āļĄāļ™āļļāļĐāļĒāđŒāļ­āđˆāļēāļ™āđ„āļ”āđ‰ -- āļ™āļąāļāļžāļąāļ’āļ™āļēāļŠāļēāļĄāļēāļĢāļ–āļ•āļĢāļ§āļˆāļŠāļ­āļš āļ”āļĩāļšāļąāļ āđāļĨāļ°āđ€āļ‚āļĩāļĒāļ™āļ‚āđ‰āļ­āļĄāļđāļĨ JSON āļ”āđ‰āļ§āļĒāļĄāļ·āļ­āđ‚āļ”āļĒāđ„āļĄāđˆāļ•āđ‰āļ­āļ‡āđƒāļŠāđ‰āđ€āļ„āļĢāļ·āđˆāļ­āļ‡āļĄāļ·āļ­āļžāļīāđ€āļĻāļĐ
  5. Schema āļĒāļ·āļ”āļŦāļĒāļļāđˆāļ™ -- āļ•āđˆāļēāļ‡āļˆāļēāļāļĢāļđāļ›āđāļšāļšāļ—āļĩāđˆāđ€āļ‚āđ‰āļĄāļ‡āļ§āļ”āđ€āļŠāđˆāļ™ XML Schema āļŦāļĢāļ·āļ­ Protocol Buffers, JSON āļĢāļ­āļ‡āļĢāļąāļšāđ‚āļ„āļĢāļ‡āļŠāļĢāđ‰āļēāļ‡āļ‚āđ‰āļ­āļĄāļđāļĨāļ—āļĩāđˆāđ€āļ›āļĨāļĩāđˆāļĒāļ™āđāļ›āļĨāļ‡āđ„āļ”āđ‰āđ‚āļ”āļĒāđ„āļĄāđˆāļ•āđ‰āļ­āļ‡āļ„āļ­āļĄāđ„āļžāļĨāđŒāđƒāļŦāļĄāđˆ

āļāļĢāļ“āļĩāļāļēāļĢāđƒāļŠāđ‰āļ‡āļēāļ™ JSON āļ—āļąāđˆāļ§āđ„āļ›

  • REST āđāļĨāļ° GraphQL API -- āļĢāļđāļ›āđāļšāļšāļĄāļēāļ•āļĢāļāļēāļ™āļŠāļģāļŦāļĢāļąāļš request āđāļĨāļ° response payloads
  • āđ„āļŸāļĨāđŒāļāļģāļŦāļ™āļ”āļ„āđˆāļē -- āđƒāļŠāđ‰āđ‚āļ”āļĒāđ€āļ„āļĢāļ·āđˆāļ­āļ‡āļĄāļ·āļ­āđ€āļŠāđˆāļ™ ESLint, Prettier, webpack āđāļĨāļ° VS Code
  • āļāļēāļ™āļ‚āđ‰āļ­āļĄāļđāļĨ NoSQL -- MongoDB āđāļĨāļ° CouchDB āļˆāļąāļ”āđ€āļāđ‡āļšāļ‚āđ‰āļ­āļĄāļđāļĨāđ€āļ›āđ‡āļ™āđ€āļ­āļāļŠāļēāļĢāļ„āļĨāđ‰āļēāļĒ JSON
  • Data serialization -- āļˆāļąāļ”āđ‚āļ„āļĢāļ‡āļŠāļĢāđ‰āļēāļ‡āļ‚āđ‰āļ­āļĄāļđāļĨāļŠāļģāļŦāļĢāļąāļšāļāļēāļĢāļˆāļąāļ”āđ€āļāđ‡āļš āļ–āđˆāļēāļĒāđ‚āļ­āļ™ āļŦāļĢāļ·āļ­āđāļ„āļŠ
  • āļāļēāļĢāļŠāļ·āđˆāļ­āļŠāļēāļĢāđāļšāļšāđ€āļĢāļĩāļĒāļĨāđ„āļ—āļĄāđŒ -- āļ‚āđ‰āļ­āļ„āļ§āļēāļĄ JSON āđƒāļ™ WebSocket streams āđāļĨāļ° Webhooks
  • Log aggregation -- āđ€āļ„āļĢāļ·āđˆāļ­āļ‡āļĄāļ·āļ­ structured logging āđ€āļŠāđˆāļ™ Winston, Logstash āđāļĨāļ° Datadog āđƒāļŠāđ‰ JSON āļŠāļģāļŦāļĢāļąāļšāļĢāļēāļĒāļāļēāļĢāļšāļąāļ™āļ—āļķāļāļ—āļĩāđˆāļ„āđ‰āļ™āļŦāļēāđāļĨāļ°āļāļĢāļ­āļ‡āđ„āļ”āđ‰

āļāļēāļĢāļ•āļĢāļ§āļˆāļŠāļ­āļšāđāļĨāļ°āļāļēāļĢāļˆāļąāļ”āļĢāļđāļ›āđāļšāļš JSON

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

āļ§āļīāļ˜āļĩāļāļēāļĢāļ•āļĢāļ§āļˆāļŠāļ­āļš JSON

āļāļēāļĢāļ•āļĢāļ§āļˆāļŠāļ­āļšāļĄāļąāļāļ—āļģāļ•āļēāļĄāļ‚āļąāđ‰āļ™āļ•āļ­āļ™āđ€āļŦāļĨāđˆāļēāļ™āļĩāđ‰:

  1. Parse āļŠāļ•āļĢāļīāļ‡ JSON āđ‚āļ”āļĒāđƒāļŠāđ‰ parser āļĄāļēāļ•āļĢāļāļēāļ™āđ€āļŠāđˆāļ™ JSON.parse() āđƒāļ™ JavaScript āļŦāļĢāļ·āļ­āđ€āļ—āļĩāļĒāļšāđ€āļ—āđˆāļēāđƒāļ™āļ āļēāļĐāļēāļ—āļĩāđˆāļ„āļļāļ“āđ€āļĨāļ·āļ­āļ
  2. āļ•āļĢāļ§āļˆāļŠāļ­āļšāļ‚āđ‰āļ­āļœāļīāļ”āļžāļĨāļēāļ”āļ—āļēāļ‡āđ„āļ§āļĒāļēāļāļĢāļ“āđŒ -- parser āļˆāļ° throw error āļ—āļĩāđˆāļāļēāļĢāļĨāļ°āđ€āļĄāļīāļ”āđāļĢāļāļžāļĢāđ‰āļ­āļĄāļ‚āđ‰āļ­āļ„āļ§āļēāļĄāļĢāļ°āļšāļļāļ•āļģāđāļŦāļ™āđˆāļ‡āļ‚āļ­āļ‡āļ›āļąāļāļŦāļē
  3. āđāļāđ‰āđ„āļ‚āļ‚āđ‰āļ­āļœāļīāļ”āļžāļĨāļēāļ”āļ‹āđ‰āļģāđ† -- āđ€āļ™āļ·āđˆāļ­āļ‡āļˆāļēāļ parser āļŦāļĒāļļāļ”āļ—āļĩāđˆāļ‚āđ‰āļ­āļœāļīāļ”āļžāļĨāļēāļ”āđāļĢāļ āđāļāđ‰āđ„āļ‚āđāļĨāđ‰āļ§āļ•āļĢāļ§āļˆāļŠāļ­āļšāđƒāļŦāļĄāđˆāļˆāļ™āļāļ§āđˆāļēāđ€āļ­āļāļŠāļēāļĢāļˆāļ°āļœāđˆāļēāļ™

āđ€āļ„āļĢāļ·āđˆāļ­āļ‡āļĄāļ·āļ­ JSON āļ­āļ­āļ™āđ„āļĨāļ™āđŒāļŠāđˆāļ§āļ™āđƒāļŦāļāđˆāļĢāļ§āļĄāļāļēāļĢāļ•āļĢāļ§āļˆāļŠāļ­āļšāļāļąāļšāļāļēāļĢāļˆāļąāļ”āļĢāļđāļ›āđāļšāļš āļ§āļēāļ‡ JSON āļ‚āļ­āļ‡āļ„āļļāļ“ āđāļĨāđ‰āļ§āđ€āļ„āļĢāļ·āđˆāļ­āļ‡āļĄāļ·āļ­āļˆāļ°āļ•āļĢāļ§āļˆāļŠāļ­āļšāđ„āļ§āļĒāļēāļāļĢāļ“āđŒāļ—āļąāļ™āļ—āļĩ āđ€āļ™āđ‰āļ™āļ‚āđ‰āļ­āļœāļīāļ”āļžāļĨāļēāļ”āļ”āđ‰āļ§āļĒāļŦāļĄāļēāļĒāđ€āļĨāļ‚āļšāļĢāļĢāļ—āļąāļ”āđāļĨāļ°āļ„āļ­āļĨāļąāļĄāļ™āđŒ āđāļĨāļ°āļŠāļĢāđ‰āļēāļ‡āļœāļĨāļĨāļąāļžāļ˜āđŒāļ—āļĩāđˆāļĒāđˆāļ­āļŦāļ™āđ‰āļēāđ€āļĢāļĩāļĒāļšāļĢāđ‰āļ­āļĒ āļŠāļīāđˆāļ‡āļ™āļĩāđ‰āđ€āļĢāđ‡āļ§āļāļ§āđˆāļēāļāļēāļĢāļ”āļĩāļšāļąāļāļ”āđ‰āļ§āļĒ parser exceptions āđƒāļ™āđ‚āļ„āđ‰āļ”āļ‚āļ­āļ‡āļ„āļļāļ“āļ­āļĒāđˆāļēāļ‡āļĄāļēāļ

āđ€āļ„āļĨāđ‡āļ”āļĨāļąāļšāļŠāļģāļŦāļĢāļąāļšāļāļēāļĢāļ—āļģāļ‡āļēāļ™āļāļąāļš JSON

  • āļ•āļĢāļ§āļˆāļŠāļ­āļšāļāđˆāļ­āļ™āđƒāļŠāđ‰āđ€āļŠāļĄāļ­ -- āļ­āļĒāđˆāļēāļ„āļīāļ”āļ§āđˆāļē JSON āļ—āļĩāđˆāđ€āļ‚āļĩāļĒāļ™āļ”āđ‰āļ§āļĒāļĄāļ·āļ­āļ–āļđāļāļ•āđ‰āļ­āļ‡
  • āđƒāļŠāđ‰ linter -- āđ€āļ„āļĢāļ·āđˆāļ­āļ‡āļĄāļ·āļ­āđ€āļŠāđˆāļ™ ESLint āļžāļĢāđ‰āļ­āļĄāļ›āļĨāļąāđŠāļāļ­āļīāļ™ JSON āļˆāļąāļšāļ‚āđ‰āļ­āļœāļīāļ”āļžāļĨāļēāļ”āļāđˆāļ­āļ™āļ–āļķāļ‡āļāļēāļĢāļœāļĨāļīāļ•
  • āđ€āļĨāļ·āļ­āļāđƒāļŠāđ‰ JSON libraries -- āļŠāļĢāđ‰āļēāļ‡ JSON āļ”āđ‰āļ§āļĒ serialization libraries āđāļ—āļ™āļāļēāļĢāļ•āđˆāļ­āļŠāļ•āļĢāļīāļ‡āđ€āļžāļ·āđˆāļ­āļŦāļĨāļĩāļāđ€āļĨāļĩāđˆāļĒāļ‡āļ‚āđ‰āļ­āļœāļīāļ”āļžāļĨāļēāļ”āļ—āļēāļ‡āđ„āļ§āļĒāļēāļāļĢāļ“āđŒāļ—āļĩāđˆāļĨāļ°āđ€āļ­āļĩāļĒāļ”āļ­āđˆāļ­āļ™
  • āļ•āļąāđ‰āļ‡āļ„āđˆāļē Content-Type headers āļ—āļĩāđˆāđ€āļ‚āđ‰āļĄāļ‡āļ§āļ” -- āļŠāļģāļŦāļĢāļąāļš API āļšāļąāļ‡āļ„āļąāļšāđƒāļŠāđ‰ Content-Type: application/json āđ€āļžāļ·āđˆāļ­āļ›āļāļīāđ€āļŠāļ˜āļ„āļģāļ‚āļ­āļ—āļĩāđˆāļĄāļĩāļĢāļđāļ›āđāļšāļšāļœāļīāļ”āļ•āļąāđ‰āļ‡āđāļ•āđˆāđ€āļ™āļīāđˆāļ™āđ†

āđƒāļŠāđ‰ āđ€āļ„āļĢāļ·āđˆāļ­āļ‡āļĄāļ·āļ­āļ•āļĢāļ§āļˆāļŠāļ­āļšāđāļĨāļ°āļˆāļąāļ”āļĢāļđāļ›āđāļšāļš JSON āļ­āļ­āļ™āđ„āļĨāļ™āđŒāļŸāļĢāļĩ āđ€āļžāļ·āđˆāļ­āļ•āļĢāļ§āļˆāļŠāļ­āļšāđ„āļ§āļĒāļēāļāļĢāļ“āđŒ JSON āļ‚āļ­āļ‡āļ„āļļāļ“āļ—āļąāļ™āļ—āļĩ āļ„āđ‰āļ™āļŦāļēāļ‚āđ‰āļ­āļœāļīāļ”āļžāļĨāļēāļ” āđāļĨāļ°āļˆāļąāļ”āļĢāļđāļ›āđāļšāļšāļ‚āđ‰āļ­āļĄāļđāļĨāļ‚āļ­āļ‡āļ„āļļāļ“āđƒāļŦāđ‰āļ­āđˆāļēāļ™āđ„āļ”āđ‰ āđ„āļĄāđˆāļ§āđˆāļēāļ„āļļāļ“āļˆāļ°āđ€āļ›āđ‡āļ™āļœāļđāđ‰āđ€āļĢāļīāđˆāļĄāļ•āđ‰āļ™āđ€āļĢāļĩāļĒāļ™āļĢāļđāđ‰āļžāļ·āđ‰āļ™āļāļēāļ™āļŦāļĢāļ·āļ­āļ™āļąāļāļžāļąāļ’āļ™āļēāļ—āļĩāđˆāļĄāļĩāļ›āļĢāļ°āļŠāļšāļāļēāļĢāļ“āđŒāļ”āļĩāļšāļąāļ API āđƒāļ™āļāļēāļĢāļœāļĨāļīāļ• āđ€āļ„āļĢāļ·āđˆāļ­āļ‡āļĄāļ·āļ­ JSON Formatter & Validator āļ‚āļ­āļ‡āđ€āļĢāļēāļŠāđˆāļ§āļĒāđƒāļŦāđ‰āļ„āļļāļ“āļ—āļģāļ‡āļēāļ™āļāļąāļšāļ‚āđ‰āļ­āļĄāļđāļĨ JSON āđ„āļ”āđ‰āļ­āļĒāđˆāļēāļ‡āļĄāļĩāļ›āļĢāļ°āļŠāļīāļ—āļ˜āļīāļ āļēāļž

JSON āļ„āļ·āļ­āļ­āļ°āđ„āļĢ? āļ„āļđāđˆāļĄāļ·āļ­āļ‰āļšāļąāļšāļŠāļĄāļšāļđāļĢāļ“āđŒāļŠāļģāļŦāļĢāļąāļšāļœāļđāđ‰āđ€āļĢāļīāđˆāļĄāļ•āđ‰āļ™ - CoolTool