What is JSON (JavaScript Object Notation) ?

About

JSON 99http://json.org/)) is a structured text format that stands for JavaScript Object Notation.

It is a simple text format that can be used for representing nested structures of data (lists of lists of dictionaries, …).

Why the J stands for Javascript in JSON ?

Because JSON is a format that comes from javascript.

Specifically specified in the RFC 4627:

JSON is a lightweight data interchange format based on a subset of JavaScript syntax (ECMA-262 3rd edition).

If you write the text object of a JSON file in a Javascript script, it will be directly seen as a JavaScript object.

Json vs Xml vs Tabular vs Yaml

JSON (Javascript Object Notation) has an obvious:

  • advantage over XML in that the response is lightweight. Parsing such a result is trivial in JavaScript as the format is already a valid Javascript object.
  • disavantage over tabular formats in that the space is less efficient. Example: Table - Csv Data Structure

YAML want to be an official subset of JSON. Every JSON file is also a valid YAML file (but not the other way around).

How can I represent a value in Json ?

Json supports only the following data type:

Object

A json object shows the following syntax 1):

{
  "Image": {
    "Width": 800,
    "Height": 600,
    "Title": "View from 15th Floor",
    "Thumbnail": {
      "Url": "http://www.example.com/image/481989943",
      "Height": 125,
      "Width": "100"
    },
    "IDs": [
      116,
      943,
      234,
      38793
    ]
  }
}

Array

A json array 2)shows the following syntax

[ "foo", "bar" ]
[ 1, 2 ]
[
  {
    "precision": "zip",
    "Latitude": 37.7668,
    "Longitude": -122.3959,
    "Address": "",
    "City": "SAN FRANCISCO",
    "State": "CA",
    "Zip": "94107",
    "Country": "US"
  },
  {
    "precision": "zip",
    "Latitude": 37.371991,
    "Longitude": -122.026020,
    "Address": "",
    "City": "SUNNYVALE",
    "State": "CA",
    "Zip": "94085",
    "Country": "US"
  }
]

String, Number, Boolean, Null

An object with:

{
  "precision": "zip",
  "Latitude": 37.371991,
  "object": true,
  "array": false,
  "yolo": null
}

Syntax

Rfc

  • rfc4627 - The application/json Media Type for JavaScript Object Notation (JSON)
  • rfc7493 - The I-JSON Message Format - I-JSON (short for “Internet JSON”) is a restricted profile of JSON designed to maximize interoperability and increase confidence that software can process it successfully with predictable results.

Schema

Json-schema is a notation to define the structure/schema of a thing. Json-Schema

Format Specification from third application

Management

Parsing

API Building

http://jsonapi.org/ - A specification for building API in Json

Json API

Comment

json does not support comment. A jsonc format has then make its apparition for config files.


Powered by ComboStrap