Archives Wild Code School
JavaScript - Beyond the Basics

Introduction au format JSON

Quête 3 sur 12 · 2 images archivées

Dans cette quête, nous te présenterons un nouveau format de fichier de données. Tu connais déjà les fichiers CSV ou d'autres formats de fichiers comme .xlsx, mais nous souhaitons parfois représenter les données dans une structure arborescente. Pour ce faire, nous pouvons utiliser des fichiers JSON.

Objectifs :

  • Comprendre ce qu'est une structure arborescente (tree structure)
  • Comprendre le format de données JSON
  • Savoir lire les données JSON avec Python

Arborescence (tree structure)

En informatique, un arbre est une structure de données composée de nœuds. Un nœud est une structure qui peut contenir une valeur ou une condition, ou représenter une structure de données distincte (qui pourrait être un arbre en soi).

Chaque nœud d'un arbre a zéro ou plusieurs nœuds enfants, qui se trouvent en dessous de lui dans l'arbre (par convention, les arbres sont dessinés en poussant vers le bas). Un nœud qui a un enfant est appelé nœud parent de l'enfant (ou supérieur). Un nœud a au plus un parent, mais éventuellement plusieurs nœuds ancêtres, comme le parent du parent.

Les nœuds enfants ayant le même parent sont des nœuds frères et sœurs.

On trouve beaucoup de structures arborescentes en informatique, par exemple le répertoire et le fichier sur un ordinateur suivent une structure arborescente, même chose avec une page HTML. Il peut également être puissant pour représenter des données.

image

↗
Wikipedia - Arbre (structure des données)
en.wikipedia.org

JSON

JSON (JavaScript Object Notation) est un format permettant de transcrire des données en texte. Ce format est de plus en plus utilisé par les développeurs. Les données sont classées en objets et sous la forme d'une structure arborescente :

  • une racine a une clé (le nom de l'objet)
  • ses branches ont des clés et des valeurs (les attributs de l'objet)

Voici à quoi ressemble un objet JSON :

json
{
    "student": {
        "firstname": "Eric",
        "lastname": "Cartman",
        "age": 10,
        "psychopath": true,
        "emergencyCall": {
            "firstname": "Liane",
            "lastname": "Cartman",
            "number": 5556754
        },
        "hobbies": [
            "World of Warcraft",
            "Tacos",
            "Drink tears"
        ],
        "friends": null
    }
}

Objet JSON

Un objet JSON a la forme suivante :

json
{
    key1: value1,
    key2: value2
}

Array JSON

Un array JSON a la forme suivante, ce qui ressemble fortement à ce que tu connais déjà sûrement :

json
key1: [
    value1,
    value2
]

Un tableau est représenté par des crochets : à une clé est associé un ensemble de valeurs.

Ressources

↗
An Introduction to JSON
digitalocean.com
↗
JSON Pretty Print

Very useful tool to browse a new json, especially if it's big or in one line. There exist a dozen of free formatter online with different options and display.

jsonformatter.org

En fonction du langage sur lequel tu travailles :

↗
Parse JSON - Convert from JSON to Python
w3schools.com
↗
https://code.tutsplus.com/tutorials/how-to-parse-json-in-php--cms-36994
code.tutsplus.com

Quiz

quiz
true|||true|||false
# JSON means : 
[x] JavaScript Object Notation
[] Java Standard Output Network
[] JavaScript Output Name
# Which is correct format of writting JSON name/value pair
[x] "name" : "value"
[] 'name : value'
[] name = "value"
# What is correct MIME type for JSON ?
[x] application/json
[] application/js
[] application/xml
# What extension in used to save a JSON file?
[] .jsn
[x] .json
[] .statham
# Can you use a double quote inside a JSON string?
[] No, you should use single quotes
[] Yes, if you use the ascii code.
[x] Yes, if it is escaped like ( \" )
[] Yes, you can use it without any special treatment