Item:OSWf1df064239044b8fa3c968339fb93344: Difference between revisions

From OpenSemanticWorld
Item:OSWf1df064239044b8fa3c968339fb93344
(Install package: OSW Docs - Core)
 
(update from wiki-dev)
Tag: 2017 source edit
 
(One intermediate revision by the same user not shown)
Line 78: Line 78:
</syntaxhighlight>
</syntaxhighlight>


==JSON Documents: Pointer (1)==
==JSON Documents: Pointer==


Pointer allow reference to
Pointer allow reference to
Line 100: Line 100:


<nowiki>#</nowiki>/kids/0 - the first item within the array "kids"
<nowiki>#</nowiki>/kids/0 - the first item within the array "kids"
==JSON Documents: Pointer (2)==
==JSON Documents: Reference==
Pointer allow reference to
References allow reference to
*An object within the JSON document
*An external JSON document
*An external JSON document
*Combined with a pointer: An object within the external JSON document


<syntaxhighlight lang="json">
<syntaxhighlight lang="json">
Line 111: Line 111:
     "partner": {
     "partner": {
         "$ref": "http://www.personaldata.com/walter.birch.json"
         "$ref": "http://www.personaldata.com/walter.birch.json"
    },
    "partner_firstname": {
        "$ref": "http://www.personaldata.com/walter.birch.json#firstname"
     }
     }
}
}
</syntaxhighlight>Specification: [http://jsonref.org/]
==JSON Documents: Path==
Paths allow query / filter values within a JSON document<syntaxhighlight lang="json">
{
  "store": {
    "book": [
      { "author": "Nigel Rees",
        "title": "Sayings of the Century",
        "price": 8.95
      },
      { "author": "J. R. R. Tolkien",
        "title": "The Lord of the Rings",
        "isbn": "0-395-19395-8",
        "price": 22.99
      }
    ]
  }
}
</syntaxhighlight>
*$.store.book[*].price => [8.95, 22.99]
*$.store.book[?(@.title == 'The Lord of the Rings')].price => 22.99
Specification: [https://datatracker.ietf.org/doc/html/rfc9535]
Conceptually also available as AWS S3 Select[https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-select-sql-reference-select.html] and Postgres JSONB [https://www.postgresql.org/docs/current/datatype-json.html#JSON-CONTAINMENT]
== JSON vs. YAML ==
YAML version 1.2 is a superset of JSON with a simplified syntax
<div style=" column-count: 2;">
<div>JSON (more machine-friendly)
<syntaxhighlight lang="json">
{
  "store": {
    "book": [
      { "author": "Nigel Rees",
        "title": "Sayings of the Century",
        "price": 8.95
      },
      { "author": "J. R. R. Tolkien",
        "title": "The Lord of the Rings",
        "isbn": "0-395-19395-8",
        "price": 22.99
      }
    ]
  }
}
</syntaxhighlight>
</div>
<div>YAML (more human-friendly)
<syntaxhighlight lang="yaml">
# comments are allowed
store:
  book:
  - author: Nigel Rees
    title: Sayings of the Century
    price: 8.95
  - author: J. R. R. Tolkien
    title: The Lord of the Rings
    isbn: 0-395-19395-8
    price: 22.99
</syntaxhighlight>
</syntaxhighlight>
</div>
</div>


==JSON Documents: Next==
==JSON Documents: Next==


*[[Item:OSWf4a9514baed04859a4c6c374a7312f10]] [{{fullurl:Item:OSWf4a9514baed04859a4c6c374a7312f10|reveal=true}} Slideshow]
*[[Item:OSWf4a9514baed04859a4c6c374a7312f10]] [{{fullurl:Item:OSWf4a9514baed04859a4c6c374a7312f10
*[[Item:OSW911488771ea449a6a34051f8213d7f2f]] [{{fullurl:Item:OSW911488771ea449a6a34051f8213d7f2f|reveal=true}} Slideshow]
|reveal=true
}} Slideshow]
*[[Item:OSW911488771ea449a6a34051f8213d7f2f]] [{{fullurl:Item:OSW911488771ea449a6a34051f8213d7f2f
|reveal=true
}} Slideshow]

Latest revision as of 16:27, 9 August 2024

JSON Tutorial [OSWf1df064239044b8fa3c968339fb93344]
ID OSWf1df064239044b8fa3c968339fb93344
UUID f1df0642-3904-4b8f-a3c9-68339fb93344
Label JSON Tutorial
Machine compatible name JsonTutorial
OSW2055124fe7b344148a1baad537bf8e35.png
Statements (outgoing)
Statements (incoming)
Keywords

Description

Covers basics about JSON-Documents

Item
Type(s)/Category(s) Tutorial
CreativeWork
Article
Tutorial
Prerequisites (required)
Prerequisites (optional)
Follow-up (recommended) JSON-SCHEMA Tutorial
JSON-LD Tutorial

View as slide show

JSON Documents: Basics

What is a JSON?

  • A JSON itself is a JSON object, marked by [1]
{}

JSON Documents: Key-Value-Pairs

  • A JSON object defines key(word):value pairs.
  • Keys are formatted as strings, marked by quotation marks ("").
{
    "key": "value"
}

JSON Documents: Data types

  • The key is always a string
  • The value can be a string, a number, a boolean or null
  • Additional data types are only possible by referencing them as external resources
{
    "key": "value",
    "string": "any string value",
    "number": 1.0,
    "bool": true,
    "empty": null,
    "image": "https://my.cloud/image-1.png"
}

JSON Documents: Subobjects

  • The value can also be a JSON document (object) itself
  • A nested object can have the same key-value pairs as the root document
  • There is no limit in the nesting depth
{
    "key": "value",
    "string": "any string value",
    "number": 1.0,
    "bool": true,
    "empty": null,
    "object": {
        "has": "it's own key-value-pairs"
    }
}

JSON Documents: Arrays

  • The value can also be an array (list)
  • An array can contain any element, including objects and nested arrays
{
    "key": "value",
    "string": "any string value",
    "number": 1.0,
    "bool": true,
    "empty": null,
    "object": {
        "has": "it's own key-value-pairs"
    },
    "array": [
        "a list", 
        {"of": "any"}, 
        ["item1", 1.0, true]
    ]
}

JSON Documents: Pointer

Pointer allow reference to

  • An object within the JSON document
{
    "firstname": "Susan",
    "surname": "Birch",
    "kids": ["Anne", "Tom"],
    "emergency_contact": {
        "$ref": "#/kids/0"
    }    
}

Syntax [2]:

# - the whole document = self-reference

#/kids - the value of the key "kids"

#/kids/0 - the first item within the array "kids"

JSON Documents: Reference

References allow reference to

  • An external JSON document
  • Combined with a pointer: An object within the external JSON document
{
    "firstname": "Susan",
    "surname": "Birch",
    "partner": {
        "$ref": "http://www.personaldata.com/walter.birch.json"
    },
    "partner_firstname": {
        "$ref": "http://www.personaldata.com/walter.birch.json#firstname"
    }
}

Specification: [3]

JSON Documents: Path

Paths allow query / filter values within a JSON document

{
  "store": {
    "book": [
      { "author": "Nigel Rees",
        "title": "Sayings of the Century",
        "price": 8.95
      },
      { "author": "J. R. R. Tolkien",
        "title": "The Lord of the Rings",
        "isbn": "0-395-19395-8",
        "price": 22.99
      }
    ]
  }
}
  • $.store.book[*].price => [8.95, 22.99]
  • $.store.book[?(@.title == 'The Lord of the Rings')].price => 22.99

Specification: [4]

Conceptually also available as AWS S3 Select[5] and Postgres JSONB [6]

JSON vs. YAML

YAML version 1.2 is a superset of JSON with a simplified syntax

JSON (more machine-friendly)
{
  "store": {
    "book": [
      { "author": "Nigel Rees",
        "title": "Sayings of the Century",
        "price": 8.95
      },
      { "author": "J. R. R. Tolkien",
        "title": "The Lord of the Rings",
        "isbn": "0-395-19395-8",
        "price": 22.99
      }
    ]
  }
}
YAML (more human-friendly)
# comments are allowed
store:
  book:
  - author: Nigel Rees
    title: Sayings of the Century
    price: 8.95
  - author: J. R. R. Tolkien
    title: The Lord of the Rings
    isbn: 0-395-19395-8 
    price: 22.99

JSON Documents: Next


📎 Select files (or drop them here)... 📷 Camera
    jsondata
    required_predecessor
    Empty array
    optional_predecessor
    Empty array
    recommended_successor
    "Item:OSWf4a9514baed04859a4c6c374a7312f10"
    "Item:OSW911488771ea449a6a34051f8213d7f2f"
    type
    "Category:OSW494f660e6a714a1a9681c517bbb975da"
    uuid"f1df0642-3904-4b8f-a3c9-68339fb93344"
    name"JsonTutorial"
    label
    text"JSON Tutorial"
    lang"en"
    description
    text"Covers basics about JSON-Documents"
    lang"en"
    image"File:OSW2055124fe7b344148a1baad537bf8e35.png"
    Cookies help us deliver our services. By using our services, you agree to our use of cookies.