« Encodage d'objets complexes » : différence entre les versions
mAucun résumé des modifications |
m (→JSON) |
||
| Ligne 14 : | Ligne 14 : | ||
So on veut définir le système solaire:<syntaxhighlight lang="xml"> | So on veut définir le système solaire:<syntaxhighlight lang="xml"> | ||
<systeme galaxie="voie lactee" etoile="soleil"> | <systeme galaxie="voie lactee" etoile="soleil"> | ||
<planete ordre=1>Mercure</planete> | <planete ordre="1">Mercure</planete> | ||
<planete ordre=2>Venus</planete> | <planete ordre="2">Venus</planete> | ||
<planete ordre=3>Terre</planete> | <planete ordre="3">Terre</planete> | ||
<planete ordre=4>Mars</planete> | <planete ordre="4">Mars</planete> | ||
<planete ordre=5>Jupiter</planete> | <planete ordre="5">Jupiter</planete> | ||
<planete ordre=6>Uranus</planete> | <planete ordre="5">Saturne</planete> | ||
<planete ordre=7>Neptune</planete> | <planete ordre="6">Uranus</planete> | ||
<planete ordre="7">Neptune</planete> | |||
</systeme> | </systeme> | ||
</syntaxhighlight> | </syntaxhighlight>Oui Pluton n'est plus une planète depuis 2006! | ||
== JSON == | On remarque que les espaces les tabulations et les retour chariots sont tous considérés comme des séparateurs. ''<big>n</big>'' séparateurs sont considérés comme un séparateur. | ||
On doit également ajouter une en-tête pour définir, à minima, la version de XML, le jeu de caractère utilisé et si la suite doit être interprétée avec un DTD ou pas. Un [[XML DTD|DTD]] est un document (aussi en XML) décrivant la structure de l'objet (a grammaire). <syntaxhighlight lang="xml"> | |||
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?> | |||
</syntaxhighlight>C'est le plus simple. | |||
== JSON ou JavaScript Object Notation == | |||
Avec l'essor de JavaScript côté client depuis des décennies et côté serveur depuis un peu mois, le format des objet au format javascript en tant que chaine de caractères est apparu comme un bon mécanisme d'échange. | |||
L'objet ci dessus ressemblerait donc à :<syntaxhighlight lang="json-object"> | |||
{ | |||
"systeme": { | |||
"planete": [ | |||
{ | |||
"ordre": "1", | |||
"name": "Mercure" | |||
}, | |||
{ | |||
"ordre": "2", | |||
"name": "Venus" | |||
}, | |||
{ | |||
"ordre": "3", | |||
"name": "Terre" | |||
}, | |||
{ | |||
"ordre": "4", | |||
"name": "Mars" | |||
}, | |||
{ | |||
"ordre": "5", | |||
"name": "Jupiter" | |||
}, | |||
{ | |||
"ordre": "6", | |||
"name": "Saturne" | |||
}, | |||
{ | |||
"ordre": "7", | |||
"name": "Uranus" | |||
}, | |||
{ | |||
"ordre": "8", | |||
"name": "Neptune" | |||
} | |||
], | |||
"galaxie": "voie lactee", | |||
"etoile": "soleil" | |||
} | |||
} | |||
</syntaxhighlight> | |||
Version du 26 juin 2025 à 07:23
Il y a beaucoup de méthodes pour encoder les objets complexes. La méthode de base consiste en les "sérialiser" ou les transformer en une suite d'octets par exemple, de caractères ASCII ou autre.
XML ou Extensible Markup Language
L'un des premier format utilisé des les années 90. Son format de balise a été popularisé par HTML qui peut être vu comme une implémentation de XML pour dessiner des pages web.
A la base c'est un document texte dont les objets sont définis pas des tags entourant un contenu :
<planete>Terre</planete>
On définie la terre. On peut lui ajouter des attributs :
<planete ordre="3">Terre</planete>
La terre est la troisième planète en partant du soleil. So on veut définir le système solaire:
<systeme galaxie="voie lactee" etoile="soleil">
<planete ordre="1">Mercure</planete>
<planete ordre="2">Venus</planete>
<planete ordre="3">Terre</planete>
<planete ordre="4">Mars</planete>
<planete ordre="5">Jupiter</planete>
<planete ordre="5">Saturne</planete>
<planete ordre="6">Uranus</planete>
<planete ordre="7">Neptune</planete>
</systeme>
Oui Pluton n'est plus une planète depuis 2006!
On remarque que les espaces les tabulations et les retour chariots sont tous considérés comme des séparateurs. n séparateurs sont considérés comme un séparateur.
On doit également ajouter une en-tête pour définir, à minima, la version de XML, le jeu de caractère utilisé et si la suite doit être interprétée avec un DTD ou pas. Un DTD est un document (aussi en XML) décrivant la structure de l'objet (a grammaire).
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
C'est le plus simple.
JSON ou JavaScript Object Notation
Avec l'essor de JavaScript côté client depuis des décennies et côté serveur depuis un peu mois, le format des objet au format javascript en tant que chaine de caractères est apparu comme un bon mécanisme d'échange.
L'objet ci dessus ressemblerait donc à :
{
"systeme": {
"planete": [
{
"ordre": "1",
"name": "Mercure"
},
{
"ordre": "2",
"name": "Venus"
},
{
"ordre": "3",
"name": "Terre"
},
{
"ordre": "4",
"name": "Mars"
},
{
"ordre": "5",
"name": "Jupiter"
},
{
"ordre": "6",
"name": "Saturne"
},
{
"ordre": "7",
"name": "Uranus"
},
{
"ordre": "8",
"name": "Neptune"
}
],
"galaxie": "voie lactee",
"etoile": "soleil"
}
}