JSON Concepts: Difference between revisions

From NovaOrdis Knowledge Base
Jump to navigation Jump to search
Line 2: Line 2:


* [[JSON#Subjects|JSON]]
* [[JSON#Subjects|JSON]]
=Top-Level Element=
The top level element has always one of the following data types. Usually, it is an [[#Objects|Object]], so it starts with "{" or an [[#Arrays|Array]], so it starts with "[".


=Data Types=
=Data Types=

Revision as of 18:44, 25 February 2017

Internal

Top-Level Element

The top level element has always one of the following data types. Usually, it is an Object, so it starts with "{" or an Array, so it starts with "[".

Data Types

JSON data types are: null, Booleans, Strings, Numbers, Objects (which can be thought of as Maps) and Arrays.

null

null is represented as a lowercase literal:

null

Booleans

Booleans are represented as lowercase literals:

true
false

and they are not quoted.

Strings

Strings are represented as:

"this is a string"

and they must be quoted. Always use double quotes ("), never use single quotes (').

Numbers

Numbers are represented as:

10

and they are not quoted.

Objects

Objects are enclosed in curly brackets "{}" and contain key (or "name")-value pairs. The JSON RFC refers to the key as "names".

The key and the value are separated by colon (":"). The pairs are delimited by commas (",").

The key is always a string, so it must be quoted.

{
  "id" : 42,
  "name" : "John Doe",
  "married" : true
  "kids" : [ "Alice", "Bob" ]
}

Arrays

Array elements are enclosed in brackets "[", and they are separated by commas:

[ "one element", "another element" ]

Comments

JSON does not support comments: https://plus.google.com/+DouglasCrockfordEsq/posts/RK8qyGVaGSr

A comment can be simulated as follows:

{
   "comment":"this is a comment",

   ...

} 

Single Quotes vs. Double Quotes

Never use single quotes ('), always use double quotes (").

JSON Schema

JSON Schema is a vocabulary that allows to annotate and validate JSON documents. The schema describes the data format, and provides complete structural validation. Example:

{
  "description":"A customer",
  "type":"object",
  "properties":
   {
      "first": {"type": "string"},
      "last" : {"type" : "string"}
   }
}

More http://json-schema.org.

Collection+JSON

Collection+JSON is a JSON-based read/write hypermedia-type designed to support management and querying of simple collections. More details http://amundsen.com/media-types/collection/.