Table des matières du Format de données JSON
1. Prerequis
1.1 Langage de pogrammation
Pour utiliser JSON, il est nécessaire d'avoir des connaissances dans un langage de programmation afin de manipuler les données.
Table des matières du langage de programmation Javascript
Table des matières du langage de programmation PHP
Table des matières du langage de programmation C++
1.2 API
Comprendre les API est essentiel pour manipuler efficacement des données structurées telles que JSON.
Table des matiéres des API (Application Programming Interface)
2. Introduction au Format de données JSON
2.1 Qu'est-ce que JSON ?
JSON (JavaScript Object Notation) est un format d'échange de données léger et lisible par l'homme, basé sur des paires clé-valeur et indépendant du langage de programmation. Sa simplicité et sa facilité d'utilisation le rendent populaire pour l'échange de données entre les applications web, le stockage de données dans des fichiers et la communication entre différents services..
2.2 À quelles fins peut-on utiliser JSON ?
JSON est utilisé pour :
- Echange de données entre applications web.
- Stockage de données.
3. Installation de JSON
JSON (JavaScript Object Notation) n'est pas un logiciel à installer. C'est un format de données indépendant du langage de programmation, utilisé pour stocker et échanger des informations.
La plupart des langages de programmation modernes ont déjà un support intégré pour traiter les données JSON. Cela signifie que vous pouvez analyser (convertir du texte JSON en structures de données) et générer (convertir des structures de données en texte JSON) des données JSON dans votre code sans avoir besoin d'installer de bibliothèques supplémentaires.
4. Structure d'un fichier JSON
4.1 Principe de clés et valeurs
Un fichier JSON est constitué de paires clé-valeur organisées de manière hiérarchique. Les clés sont des chaînes de caractères qui identifient des valeurs.
JSONUne clé et une valeur
{
"clé": "valeur"
}
4.2 Les types de valeurs
C'est clés peuvent être de différents types.
- Chaînes de caractères : Séquences de caractères entourées de guillemets doubles.
- Nombres : Entiers ou nombres décimaux.
- Booléens : true ou false.
- Tableaux : Listes ordonnées d'éléments entre crochets [].
- Objets : Collections de paires clé-valeur entre accolades {}.
4.3 Les régles en JSON
Quelques règles importantes pour la structure d'un fichier JSON
- Les clés doivent être uniques dans chaque objet.
- Les valeurs peuvent être de n'importe quel type.
- Les paires clé-valeur sont séparées par des virgules.
- Les objets et les tableaux sont imbriqués en utilisant des accolades et des crochets.
- Il ne peut y avoir ni espaces ni sauts de ligne inutiles dans un fichier JSON.
4.4 Exemple de fichier JSON
JSONExemple de données JSON
[
{
"id": 1,
"nom": "Stella",
"prénom": "Astra",
"âge": 28,
"adresse": "Lune, Base Lunaire Alpha, Secteur 7G",
"contacts": ["astra.stella@spacemail.com", "+123456789"],
"produits": [
{"nom": "Hoverboard gravitationnel", "prix": 499.99, "disponible": false},
{"nom": "Holocasque de réalité virtuelle", "prix": 299.99, "disponible": true}
]
},
{
"id": 2,
"nom": "Hikaru",
"prénom": "Yamamoto",
"âge": 35,
"adresse": "Tokyo, Japon",
"contacts": ["hikaru.yamamoto@example.com", "+81987654321"],
"produits": [
{"nom": "Montre connectée", "prix": 199.99, "disponible": true},
{"nom": "Écouteurs sans fil", "prix": 99.99, "disponible": true}
]
}
]
5. Javascript & JSON
Les principales fonctions JSON en JavaScript sont JSON.parse() et JSON.stringify().
- JSON.parse() : Cette fonction prend une chaîne JSON en entrée et la convertit en un objet JavaScript.
index.jsChaîne JSON représentant un objet
let dataJson = '{"nom": "Stella", "prénom": "Astra", "âge": 28}';
Conversion de la chaîne JSON en un objet JavaScript
let dataJs= JSON.parse(dataJson);
Accès aux propriétés de l'objet
console.log(dataJs.nom); Output: Stella
console.log(dataJs.age); Output: 28
- JSON.stringify() : Cette fonction prend un objet JavaScript en entrée et le convertit en une chaîne JSON.
index.jsObjet JavaScript
let dataJs = {nom: "Kaito", prenom: "Ryu", age: 30 };
Conversion de l'objet en une chaîne JSON
let dataJson = JSON.stringify(dataJs);
Affichage de la chaîne JSON
console.log(dataJson); Output: {"nom":"Kaito", "prenom":"Ryu"; "age":35}
5.1 Système de fichiers local (Node.js)
Le système de fichiers local de Node.js est une fonctionnalité intégrée qui permet aux applications Node.js d'interagir avec les fichiers et les répertoires du système de fichiers local de l'ordinateur.
5.1.1 Lecture d'un fichier
La lecture d'un fichier JSON en local est une étape clé du développement logiciel. Elle permet aux programmes d'accéder rapidement aux données stockées localement, comme les configurations ou les informations utilisateur, pour enrichir l'expérience des utilisateurs finaux.
data.json{
"nom": "Luna",
"espèce": "Chien",
"âge": 5,
"adresse": "Maison, Rue des Nuages, Quartier du Bonheur",
"propriétaire": "Sakura",
"contacts": ["sakura@example.com", "+123456789"],
"produits": [
{"nom": "Collier lumineux de sécurité", "prix": 29.99, "disponible": true},
{"nom": "Os à mâcher en caoutchouc", "prix": 9.99, "disponible": false}
]
}
index.jsfs permet de lire écrire et manipuler des fichiers
const fs = require('fs');
readFile permet de lire un fichier
fs.readFile('data.json', 'utf8', (err, data) => {
Essaie d'afficher les données sous forme d'objet JavaScript, et s'il y a une erreur, affiche l'erreur.
try {
const dataJs = JSON.parse(data);
Affiche le contenu du fichier JSON.
console.log(dataJs);
Vérification de la disponibilité pour chaque produit
dataJs.produits.forEach(produit => {
Si le produit est disponible, affichez son nom et son prix
if (produit.disponible == true) {
console.log(`Article disponible : ${produit.nom} - Prix : ${produit.prix} €`);
}
});
}
catch (error) {
console.error('Erreur de parsing JSON:', error);
}
});
5.1.2 Écriture dans un fichier
L'écriture d'un fichier JSON en local est une étape essentielle du développement logiciel, permettant aux programmes de sauvegarder rapidement des données sur le système de fichiers de l'ordinateur local.
index.jsfs permet de lire écrire et manipuler des fichiers
const fs = require('fs');
Création d'un objet JavaScript
const maison = [
{
"nom": "Maison de Luna",
"type": "Maison",
"emplacement": "Maison, Rue des Nuages, Quartier du Bonheur",
"propriétaire": "Sakura",
"contacts": ["sakura@example.com", "+123456789"],
"fonctionnalités": [
"Système de sécurité avec caméras",
"Système d'éclairage intelligent",
"Thermostat connecté"
]
},
{
"nom": "Résidence Étoile",
"type": "Maison intelligente",
"emplacement": "Lune, Base Lunaire Alpha, Secteur 7G",
"propriétaire": "Stella Astra",
"contacts": ["astra.stella@spacemail.com", "+123456789"],
"fonctionnalités": [
"Contrôle vocal de l'environnement",
"Sécurité avancée avec scanners rétiniens",
"Jardin hydroponique automatisé",
"Système de divertissement holographique"
]
}
]
try {
Tente d'écrire les données de l'objet 'maison' dans un fichier 'data.json'.
fs.writeFile('data.json', JSON.stringify(maison), 'utf8', (err) => {
if (err) {
Si une erreur se produit lors de l'écriture du fichier, elle est lancée (throw) pour être capturée par le bloc catch.
throw err;
}
Si l'écriture est réussie, un message de confirmation est affiché dans la console.
console.log('Fichier JSON sauvegardé !');
});
} catch (err) {
Si une erreur est capturée lors de l'écriture du fichier, elle est affichée dans la console.
console.error('Une erreur est survenue lors de l\'écriture du fichier :', err);
}
data.json[
{
"nom": "Maison de Luna",
"type": "Maison",
"emplacement": "Maison, Rue des Nuages, Quartier du Bonheur",
"propriétaire": "Sakura",
"contacts": ["sakura@example.com", "+123456789"],
"produits": [
{"nom": "Collier lumineux de sécurité", "prix": 29.99, "disponible": true},
{"nom": "Os à mâcher en caoutchouc", "prix": 9.99, "disponible": false}
]
},
{
"nom": "Résidence Étoile",
"type": "Maison intelligente",
"emplacement": "Lune, Base Lunaire Alpha, Secteur 7G",
"propriétaire": "Stella Astra",
"contacts": ["astra.stella@spacemail.com", "+123456789"],
"fonctionnalités": [
"Contrôle vocal de l'environnement",
"Sécurité avancée avec scanners rétiniens",
"Jardin hydroponique automatisé",
"Système de divertissement holographique"
]
}
]
5.1.3 Modification dans un fichier
Modifier un fichier est une tâche courante en développement logiciel. Cela permet aux programmes de stocker des données de manière persistante sur l'ordinateur.
data.json[
{
"nom": "Maison de Luna",
"type": "Maison",
"emplacement": "Maison, Rue des Nuages, Quartier du Bonheur",
"propriétaire": "Sakura",
"contacts": ["sakura@example.com", "+123456789"],
"produits": [
{"nom": "Collier lumineux de sécurité", "prix": 29.99, "disponible": true},
{"nom": "Os à mâcher en caoutchouc", "prix": 9.99, "disponible": false}
]
},
{
"nom": "Résidence Étoile",
"type": "Maison intelligente",
"emplacement": "Lune, Base Lunaire Alpha, Secteur 7G",
"propriétaire": "Stella Astra",
"contacts": ["astra.stella@spacemail.com", "+123456789"],
"fonctionnalités": [
"Contrôle vocal de l'environnement",
"Sécurité avancée avec scanners rétiniens",
"Jardin hydroponique automatisé",
"Système de divertissement holographique"
]
}
]
index.jsfs permet de lire écrire et manipuler des fichiers
const fs = require('fs');
readFile permet de lire un fichier.
fs.readFile('data.json', 'utf8', (err, data) => {
if (err) {
console.error(err);
return;
}
Le contenu du fichier JSON est analysé et converti en un objet JavaScript.
const dataJs = JSON.parse(data);
Ajout d'un identifiant à chaque objet
dataJs.forEach((item, index) => {
item.id = index + 1;
});
Les données modifiées sont écrites dans le fichier JSON.
fs.writeFile('data.json', JSON.stringify(dataJs), 'utf8', (err) => {
if (err) {
console.error(err);
return;
}
Si l'écriture est réussie, un message de confirmation est affiché dans la console.
console.log('Fichier JSON modifié avec les identifiants !');
});
});
data.json[
{
"id": 1,
"nom": "Maison de Luna",
"type": "Maison",
"emplacement": "Maison, Rue des Nuages, Quartier du Bonheur",
"propriétaire": "Sakura",
"contacts": ["sakura@example.com", "+123456789"],
"fonctionnalités": [
"Système de sécurité avec caméras",
"Système d'éclairage intelligent",
"Thermostat connecté"
]
},
{
"id": 2,
"nom": "Résidence Étoile",
"type": "Maison intelligente",
"emplacement": "Lune, Base Lunaire Alpha, Secteur 7G",
"propriétaire": "Stella Astra",
"contacts": ["astra.stella@spacemail.com", "+123456789"],
"fonctionnalités": [
"Contrôle vocal de l'environnement",
"Sécurité avancée avec scanners rétiniens",
"Jardin hydroponique automatisé",
"Système de divertissement holographique"
]
}
]
5.1.4 Suppression dans un fichier
Supprimer des données dans un fichier est une opération fréquente en programmation. Cela permet de mettre à jour ou de nettoyer des données existantes dans un fichier, ce qui est souvent nécessaire pour maintenir la cohérence et l'intégrité des données.
data.json[
{
"id": 1,
"nom": "Maison de Luna",
"type": "Maison",
"emplacement": "Maison, Rue des Nuages, Quartier du Bonheur",
"propriétaire": "Sakura",
"contacts": ["sakura@example.com", "+123456789"],
"fonctionnalités": [
"Système de sécurité avec caméras",
"Système d'éclairage intelligent",
"Thermostat connecté"
]
},
{
"id": 2,
"nom": "Résidence Étoile",
"type": "Maison intelligente",
"emplacement": "Lune, Base Lunaire Alpha, Secteur 7G",
"propriétaire": "Stella Astra",
"contacts": ["astra.stella@spacemail.com", "+123456789"],
"fonctionnalités": [
"Contrôle vocal de l'environnement",
"Sécurité avancée avec scanners rétiniens",
"Jardin hydroponique automatisé",
"Système de divertissement holographique"
]
}
]
data.jsonfs permet de lire écrire et manipuler des fichiers
const fs = require('fs');
fs.readFile('data.json', 'utf8', (err, data) => {
if (err) {
console.error(err);
return;
}
let dataJs = JSON.parse(data);
Filtrer les objets avec un id différent de 1
dataJs = dataJs.filter(item => item.id !== 1);
Réécrire les données filtrées dans le fichier JSON
fs.writeFile('data.json', JSON.stringify(dataJs), 'utf8', (err) => {
if (err) {
console.error(err);
return;
}
console.log('Objet avec id 1 supprimé du fichier JSON !');
});
});
data.json[
{
"id": 2,
"nom": "Résidence Étoile",
"type": "Maison intelligente",
"emplacement": "Lune, Base Lunaire Alpha, Secteur 7G",
"propriétaire": "Stella Astra",
"contacts": ["astra.stella@spacemail.com", "+123456789"],
"fonctionnalités": [
"Contrôle vocal de l'environnement",
"Sécurité avancée avec scanners rétiniens",
"Jardin hydroponique automatisé",
"Système de divertissement holographique"
]
}
]
5.2 API (Application Programming Interface) en JSON
Une API (Application Programming Interface) est un ensemble de règles qui permet à différentes applications de communiquer entre elles. Les APIs en JSON utilisent le format JSON (JavaScript Object Notation) pour échanger des données entre le client et le serveur.
terminalInstallation de axios
npm install axios
5.2.1 Lecture de données depuis une API
La lecture de données depuis une API en JSON est essentielle pour récupérer des informations dynamiques et mises à jour depuis un serveur. Cela permet d'intégrer des données externes dans une application.
https://api.exemple.com/data[
{
"id": 1,
"nom": "HoloHorloge",
"type": "Dispositif holographique",
"fonctionnalités": ["Affichage holographique", "Assistant vocal", "Synchronisation avec l'environnement"],
"propriétaire": "Hiro Takahashi"
},
{
"id": 2,
"nom": "HoloLumière",
"type": "Lampe holographique",
"fonctionnalités": ["Éclairage holographique", "Contrôle vocal", "Changement de couleur"],
"propriétaire": "Jane Doe"
}
]
index.jsAxios permet de récupérer des données à partir d'une API, la conversion est effectuée à l'aide de l'objet response.
const axios = require('axios');
URL de l'API
const apiUrl = 'https://api.exemple.com/data';
axios.get(apiUrl)
.then(response => {
Vérifie si la réponse est OK, sinon capture l'erreur
if (response.status !== 200) {
throw new Error('Erreur de réseau');
}
Retourne la réponse si c'est OK et Convertit automatiquement les données JSON en objets JavaScript
return response.data;
})
.then(data => {
Affiche les données récupérées
console.log(data);
Parcourir et afficher les produits disponibles
data.forEach(item => {
console.log(`Nom: ${item.nom} - Type: ${item.type}`);
item.fonctionnalités.forEach(fonctionnalité => {
console.log(`Fonctionnalité: ${fonctionnalité}`);
});
});
})
.catch(error => {
Affiche les erreurs éventuelles
console.error('Erreur lors de la récupération des données:', error);
});
5.2.2 Envoi de données à une API
L'envoi de données à une API en JSON permet d'ajouter de nouvelles informations à une base de données ou de créer de nouveaux éléments.
https://api.exemple.com/data[
{
"id": 1,
"nom": "HoloHorloge",
"type": "Dispositif holographique",
"fonctionnalités": ["Affichage holographique", "Assistant vocal", "Synchronisation avec l'environnement"],
"propriétaire": "Hiro Takahashi"
},
{
"id": 2,
"nom": "HoloLumière",
"type": "Lampe holographique",
"fonctionnalités": ["Éclairage holographique", "Contrôle vocal", "Changement de couleur"],
"propriétaire": "Jane Doe"
}
]
index.jsImportation du module axios
const axios = require('axios');
URL de l'API
const apiUrl = 'https://api.exemple.com/data';
Objet à envoyer
const nouvelObjet = {
nom: "HoloCigare",
type: "Cigare holographique",
fonctionnalités: ["Fumée virtuelle", "Arômes ajustables", "Simulation de combustion"],
propriétaire: "John Smith"
};
axios.post(apiUrl, nouvelObjet)
.then(response => {
console.log('Données envoyées à l\'API:', response.data);
})
.catch(error => {
console.error('Erreur:', error);
});
https://api.exemple.com/data[
{
"id": 1,
"nom": "HoloHorloge",
"type": "Dispositif holographique",
"fonctionnalités": ["Affichage holographique", "Assistant vocal", "Synchronisation avec l'environnement"],
"propriétaire": "Hiro Takahashi"
},
{
"id": 2,
"nom": "HoloLumière",
"type": "Lampe holographique",
"fonctionnalités": ["Éclairage holographique", "Contrôle vocal", "Changement de couleur"],
"propriétaire": "Jane Doe"
},
{
"id": 3,
"nom": "HoloCigare",
"type": "Cigare holographique",
"fonctionnalités": ["Fumée virtuelle", "Arômes ajustables", "Simulation de combustion"],
"propriétaire": "John Smith"
}
]
5.2.3 Mise à jour des données via une API
La mise à jour des données via une API en JSON permet de modifier des informations existantes dans une base de données ou de mettre à jour des éléments.
https://api.exemple.com/data[
{
"id": 1,
"nom": "HoloHorloge",
"type": "Dispositif holographique",
"fonctionnalités": ["Affichage holographique", "Assistant vocal", "Synchronisation avec l'environnement"],
"propriétaire": "Hiro Takahashi"
},
{
"id": 2,
"nom": "HoloLumière",
"type": "Lampe holographique",
"fonctionnalités": ["Éclairage holographique", "Contrôle vocal", "Changement de couleur"],
"propriétaire": "Jane Doe"
}
]
index.jsImportation du module axios
const axios = require('axios');
URL de l'API
const apiUrl = 'https://api.exemple.com/data/1';
Objet à mettre à jour
const miseAJourObjet = {
nom: "HoloHorloge Mise à Jour",
type: "Dispositif holographique mis à jour",
fonctionnalités: ["Affichage holographique amélioré", "Assistant vocal avancé", "Synchronisation avec
l'environnement optimisée"],
propriétaire: "Nouveau Propriétaire de l'objet"
};
axios.put(apiUrl, miseAJourObjet)
.then(response => {
console.log('Données mises à jour via l\'API:', response.data);
})
.catch(error => {
console.error('Erreur:', error);
});
https://api.exemple.com/data[
{
"id": 1,
"nom": "HoloHorloge Mise à Jour",
"type": "Dispositif holographique mis à jour",
"fonctionnalités": ["Affichage holographique amélioré", "Assistant vocal avancé", "Synchronisation
avec l'environnement optimisée"],
"propriétaire": "Nouveau Propriétaire de l'objet"
},
{
"id": 2,
"nom": "HoloLumière",
"type": "Lampe holographique",
"fonctionnalités": ["Éclairage holographique", "Contrôle vocal", "Changement de couleur"],
"propriétaire": "Jane Doe"
}
]
5.2.4 Suppression de données via une API
La suppression de données via une API en JSON permet de supprimer des éléments existants dans une base de données.
https://api.exemple.com/data[
{
"id": 1,
"nom": "HoloHorloge Mise à Jour",
"type": "Dispositif holographique mis à jour",
"fonctionnalités": ["Affichage holographique amélioré", "Assistant vocal avancé", "Synchronisation
avec l'environnement optimisée"],
"propriétaire": "Nouveau Propriétaire de l'objet"
},
{
"id": 2,
"nom": "HoloLumière",
"type": "Lampe holographique",
"fonctionnalités": ["Éclairage holographique", "Contrôle vocal", "Changement de couleur"],
"propriétaire": "Jane Doe"
}
]
index.jsImportation du module axios
const axios = require('axios');
URL de l'API
const apiUrl = 'https://api.exemple.com/data/2';
axios.delete(apiUrl)
.then(response => {
console.log('Donnée supprimée avec succès via l\'API:', response.data);
})
.catch(error => {
console.error('Erreur:', error);
});
https://api.exemple.com/data[
{
"id": 1,
"nom": "HoloHorloge Mise à Jour",
"type": "Dispositif holographique mis à jour",
"fonctionnalités": ["Affichage holographique amélioré", "Assistant vocal avancé", "Synchronisation
avec l'environnement optimisée"],
"propriétaire": "Nouveau Propriétaire de l'objet"
}
]
6. PHP & JSON
Les principales fonctions JSON en PHP sont json_decode() et json_encode().
- json_decode() : Cette fonction prend une chaîne JSON en entrée et la convertit en un objet ou tableau PHP.
index.phpChaîne JSON représentant un objet
$dataJson = '{"nom": "Stella", "prénom": "Astra", "âge": 28}';
Conversion de la chaîne JSON en un tableau PHP
$dataPhp = json_decode($dataJson, true);
Accès aux propriétés de l'objet
echo $dataPhp['nom']; Output: Stella
echo $dataPhp['âge']; Output: 28
- json_encode() : Cette fonction prend un tableau ou un objet PHP en entrée et le convertit en une chaîne JSON.
index.phpTableau PHP
$dataPhp = array("nom" => "Kaito", "prenom" => "Ryu", "age" => 30);
Conversion du tableau en une chaîne JSON
$dataJson = json_encode($dataPhp);
Affichage de la chaîne JSON
echo $dataJson; Output: {"nom":"Kaito","prenom":"Ryu","age":30}
6.1 Système de fichiers local
Le système de fichiers local en PHP permet d'interagir avec les fichiers et les répertoires du système de fichiers local de l'ordinateur.
6.1.1 Lecture d'un fichier
La lecture d'un fichier JSON en local est une étape clé du développement logiciel. Elle permet aux programmes d'accéder rapidement aux données stockées localement, comme les configurations ou les informations utilisateur, pour enrichir l'expérience des utilisateurs finaux.
data.json{
"nom": "Luna",
"espèce": "Chien",
"âge": 5,
"adresse": "Maison, Rue des Nuages, Quartier du Bonheur",
"propriétaire": "Sakura",
"contacts": ["sakura@example.com", "+123456789"],
"produits": [
{"nom": "Collier lumineux de sécurité", "prix": 29.99, "disponible": true},
{"nom": "Os à mâcher en caoutchouc", "prix": 9.99, "disponible": false}
]
}
index.phpLecture du fichier data.json
$data = file_get_contents('data.json');
Conversion des données JSON en tableau PHP
$dataPhp = json_decode($data, true);
Affichage du contenu du fichier JSON
print_r($dataPhp);
Vérification de la disponibilité pour chaque produit
foreach ($dataPhp['produits'] as $produit) {
if ($produit['disponible'] == true) {
echo "Article disponible : " . $produit['nom'] . " - Prix : " . $produit['prix'] . " €\n";
}
}
6.1.2 Écriture dans un fichier
L'écriture d'un fichier JSON en local est une étape essentielle du développement logiciel, permettant aux programmes de sauvegarder rapidement des données sur le système de fichiers de l'ordinateur local.
index.php// Création d'un tableau PHP
$maison = array(
array(
"nom" => "Maison de Luna",
"type" => "Maison",
"emplacement" => "Maison, Rue des Nuages, Quartier du Bonheur",
"propriétaire" => "Sakura",
"contacts" => array("sakura@example.com", "+123456789"),
"fonctionnalités" => array(
"Système de sécurité avec caméras",
"Système d'éclairage intelligent",
"Thermostat connecté"
)
),
array(
"nom" => "Résidence Étoile",
"type" => "Maison intelligente",
"emplacement" => "Lune, Base Lunaire Alpha, Secteur 7G",
"propriétaire" => "Stella Astra",
"contacts" => array("astra.stella@spacemail.com", "+123456789"),
"fonctionnalités" => array(
"Contrôle vocal de l'environnement",
"Sécurité avancée avec scanners rétiniens",
"Jardin hydroponique automatisé",
"Système de divertissement holographique"
)
)
);
// Conversion du tableau PHP en JSON
$dataJson = json_encode($maison);
// Écriture des données JSON dans le fichier data.json
file_put_contents('data.json', $dataJson);
// Affichage du message de confirmation
echo 'Fichier JSON sauvegardé !';
data.json[
{
"nom": "Maison de Luna",
"type": "Maison",
"emplacement": "Maison, Rue des Nuages, Quartier du Bonheur",
"propriétaire": "Sakura",
"contacts": ["sakura@example.com", "+123456789"],
"produits": [
{"nom": "Collier lumineux de sécurité", "prix": 29.99, "disponible": true},
{"nom": "Os à mâcher en caoutchouc", "prix": 9.99, "disponible": false}
]
},
{
"nom": "Résidence Étoile",
"type": "Maison intelligente",
"emplacement": "Lune, Base Lunaire Alpha, Secteur 7G",
"propriétaire": "Stella Astra",
"contacts": ["astra.stella@spacemail.com", "+123456789"],
"fonctionnalités": [
"Contrôle vocal de l'environnement",
"Sécurité avancée avec scanners rétiniens",
"Jardin hydroponique automatisé",
"Système de divertissement holographique"
]
}
]
6.1.3 Modification dans un fichier
data.json[
{
"nom": "Maison de Luna",
"type": "Maison",
"emplacement": "Maison, Rue des Nuages, Quartier du Bonheur",
"propriétaire": "Sakura",
"contacts": ["sakura@example.com", "+123456789"],
"produits": [
{"nom": "Collier lumineux de sécurité", "prix": 29.99, "disponible": true},
{"nom": "Os à mâcher en caoutchouc", "prix": 9.99, "disponible": false}
]
},
{
"nom": "Résidence Étoile",
"type": "Maison intelligente",
"emplacement": "Lune, Base Lunaire Alpha, Secteur 7G",
"propriétaire": "Stella Astra",
"contacts": ["astra.stella@spacemail.com", "+123456789"],
"fonctionnalités": [
"Contrôle vocal de l'environnement",
"Sécurité avancée avec scanners rétiniens",
"Jardin hydroponique automatisé",
"Système de divertissement holographique"
]
}
]
index.php// Lecture du fichier data.json
$data = file_get_contents('data.json');
// Conversion des données JSON en tableau PHP
$dataPhp = json_decode($data, true);
// Ajout d'un identifiant à chaque objet
foreach ($dataPhp as $index => $item) {
$dataPhp[$index]['id'] = $index + 1;
}
// Écriture des données modifiées dans le fichier JSON
file_put_contents('data.json', json_encode($dataPhp));
// Affichage du message de confirmation
echo 'Fichier JSON modifié avec les identifiants !';
data.json[
{
"id": 1,
"nom": "Maison de Luna",
"type": "Maison",
"emplacement": "Maison, Rue des Nuages, Quartier du Bonheur",
"propriétaire": "Sakura",
"contacts": ["sakura@example.com", "+123456789"],
"produits": [
{"nom": "Collier lumineux de sécurité", "prix": 29.99, "disponible": true},
{"nom": "Os à mâcher en caoutchouc", "prix": 9.99, "disponible": false}
]
},
{
"id": 2,
"nom": "Résidence Étoile",
"type": "Maison intelligente",
"emplacement": "Lune, Base Lunaire Alpha, Secteur 7G",
"propriétaire": "Stella Astra",
"contacts": ["astra.stella@spacemail.com", "+123456789"],
"fonctionnalités": [
"Contrôle vocal de l'environnement",
"Sécurité avancée avec scanners rétiniens",
"Jardin hydroponique automatisé",
"Système de divertissement holographique"
]
}
]
6.1.4 Suppression dans un fichier
data.json[
{
"id": 1,
"nom": "Maison de Luna",
"type": "Maison",
"emplacement": "Maison, Rue des Nuages, Quartier du Bonheur",
"propriétaire": "Sakura",
"contacts": ["sakura@example.com", "+123456789"],
"produits": [
{"nom": "Collier lumineux de sécurité", "prix": 29.99, "disponible": true},
{"nom": "Os à mâcher en caoutchouc", "prix": 9.99, "disponible": false}
]
},
{
"id": 2,
"nom": "Résidence Étoile",
"type": "Maison intelligente",
"emplacement": "Lune, Base Lunaire Alpha, Secteur 7G",
"propriétaire": "Stella Astra",
"contacts": ["astra.stella@spacemail.com", "+123456789"],
"fonctionnalités": [
"Contrôle vocal de l'environnement",
"Sécurité avancée avec scanners rétiniens",
"Jardin hydroponique automatisé",
"Système de divertissement holographique"
]
}
]
index.php// Lecture du fichier data.json
$data = file_get_contents('data.json');
// Conversion des données JSON en tableau PHP
$dataPhp = json_decode($data, true);
// Suppression de l'élément avec l'id 1
foreach ($dataPhp as $index => $item) {
if ($item['id'] == 1) {
unset($dataPhp[$index]);
}
}
// Réindexation du tableau
$dataPhp = array_values($dataPhp);
// Écriture des données modifiées dans le fichier JSON
file_put_contents('data.json', json_encode($dataPhp));
// Affichage du message de confirmation
echo 'Élément supprimé avec succès !';
data.json[
{
"id": 2,
"nom": "Résidence Étoile",
"type": "Maison intelligente",
"emplacement": "Lune, Base Lunaire Alpha, Secteur 7G",
"propriétaire": "Stella Astra",
"contacts": ["astra.stella@spacemail.com", "+123456789"],
"fonctionnalités": [
"Contrôle vocal de l'environnement",
"Sécurité avancée avec scanners rétiniens",
"Jardin hydroponique automatisé",
"Système de divertissement holographique"
]
}
]
6.2 API (Application Programming Interface) en JSON
Les APIs en JSON utilisent le format JSON (JavaScript Object Notation) pour échanger des données entre le client et le serveur.
6.2.1 Lecture de données depuis une API
La lecture de données depuis une API en JSON est essentielle pour récupérer des informations dynamiques et mises à jour depuis un serveur.
https://api.exemple.com/data[
{
"id": 1,
"nom": "HoloHorloge",
"type": "Dispositif holographique",
"fonctionnalités": ["Affichage holographique", "Assistant vocal", "Synchronisation avec l'environnement"],
"propriétaire": "Hiro Takahashi"
},
{
"id": 2,
"nom": "HoloLumière",
"type": "Lampe holographique",
"fonctionnalités": ["Éclairage holographique", "Contrôle vocal", "Changement de couleur"],
"propriétaire": "Jane Doe"
}
]
index.php// URL de l'API
$apiUrl = 'https://api.exemple.com/data';
// Récupérer les données depuis l'API
$response = file_get_contents($apiUrl);
// Vérifier si la requête a réussi
if ($response === FALSE) {
die('Erreur de réseau');
}
// Convertir les données JSON en tableau PHP
$data = json_decode($response, true);
// Afficher les données récupérées
foreach ($data as $item) {
echo 'Nom: ' . $item['nom'] . ' - Type: ' . $item['type'] . "\n";
foreach ($item['fonctionnalités'] as $fonctionnalité) {
echo 'Fonctionnalité: ' . $fonctionnalité . "\n";
}
}
6.2.2 Envoi de données à une API
L'envoi de données à une API en JSON permet d'ajouter de nouvelles informations à une base de données ou de créer de nouveaux éléments.
https://api.exemple.com/data[
{
"id": 1,
"nom": "HoloHorloge",
"type": "Dispositif holographique",
"fonctionnalités": ["Affichage holographique", "Assistant vocal", "Synchronisation avec l'environnement"],
"propriétaire": "Hiro Takahashi"
},
{
"id": 2,
"nom": "HoloLumière",
"type": "Lampe holographique",
"fonctionnalités": ["Éclairage holographique", "Contrôle vocal", "Changement de couleur"],
"propriétaire": "Jane Doe"
}
]
index.php// URL de l'API
$apiUrl = 'https://api.exemple.com/data';
// Objet à envoyer
$nouvelObjet = array(
'nom' => 'HoloCigare',
'type' => 'Cigare holographique',
'fonctionnalités' => array('Fumée virtuelle', 'Arômes ajustables', 'Simulation de combustion'),
'propriétaire' => 'John Smith'
);
// Conversion du tableau PHP en JSON
$dataJson = json_encode($nouvelObjet);
// Initialisation d'une requête cURL
$ch = curl_init($apiUrl);
// Configuration des options cURL
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $dataJson);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json'));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
// Exécution de la requête cURL
$response = curl_exec($ch);
// Vérification de la réponse
if ($response === FALSE) {
die('Erreur: ' . curl_error($ch));
}
// Fermeture de la session cURL
curl_close($ch);
// Affichage de la réponse
echo 'Données envoyées à l\'API: ' . $response;
6.2.3 Mise à jour des données via une API
La mise à jour des données via une API en JSON permet de modifier des informations existantes dans une base de données ou de mettre à jour des éléments.
https://api.exemple.com/data[
{
"id": 1,
"nom": "HoloHorloge",
"type": "Dispositif holographique",
"fonctionnalités": ["Affichage holographique", "Assistant vocal", "Synchronisation avec l'environnement"],
"propriétaire": "Hiro Takahashi"
},
{
"id": 2,
"nom": "HoloLumière",
"type": "Lampe holographique",
"fonctionnalités": ["Éclairage holographique", "Contrôle vocal", "Changement de couleur"],
"propriétaire": "Jane Doe"
}
]
index.php// URL de l'API
$apiUrl = 'https://api.exemple.com/data/1';
// Objet à mettre à jour
$miseAJourObjet = array(
'nom' => 'HoloHorloge Mise à Jour',
'type' => 'Dispositif holographique mis à jour',
'fonctionnalités' => array('Affichage holographique amélioré', 'Assistant vocal avancé', 'Synchronisation avec l\'environnement optimisée'),
'propriétaire' => 'Nouveau Propriétaire de l\'objet'
);
// Conversion du tableau PHP en JSON
$dataJson = json_encode($miseAJourObjet);
// Initialisation d'une requête cURL
$ch = curl_init($apiUrl);
// Configuration des options cURL
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'PUT');
curl_setopt($ch, CURLOPT_POSTFIELDS, $dataJson);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json'));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
// Exécution de la requête cURL
$response = curl_exec($ch);
// Vérification de la réponse
if ($response === FALSE) {
die('Erreur: ' . curl_error($ch));
}
// Fermeture de la session cURL
curl_close($ch);
// Affichage de la réponse
echo 'Données mises à jour via l\'API: ' . $response;
6.2.4 Suppression de données via une API
La suppression de données via une API en JSON permet de supprimer des éléments existants dans une base de données.
https://api.exemple.com/data[
{
"id": 1,
"nom": "HoloHorloge Mise à Jour",
"type": "Dispositif holographique mis à jour",
"fonctionnalités": ["Affichage holographique amélioré", "Assistant vocal avancé", "Synchronisation avec l'environnement optimisée"],
"propriétaire": "Nouveau Propriétaire de l'objet"
},
{
"id": 2,
"nom": "HoloLumière",
"type": "Lampe holographique",
"fonctionnalités": ["Éclairage holographique", "Contrôle vocal", "Changement de couleur"],
"propriétaire": "Jane Doe"
}
]
index.php// URL de l'API
$apiUrl = 'https://api.exemple.com/data/2';
// Initialisation d'une requête cURL
$ch = curl_init($apiUrl);
// Configuration des options cURL
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'DELETE');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
// Exécution de la requête cURL
$response = curl_exec($ch);
// Vérification de la réponse
if ($response === FALSE) {
die('Erreur: ' . curl_error($ch));
}
// Fermeture de la session cURL
curl_close($ch);
// Affichage de la réponse
echo 'Donnée supprimée avec succès via l\'API: ' . $response;
7. C++ & JSON
Les principales fonctions JSON en C++ sont de la bibliothèque JSON pour C++ comme jsoncpp.
- Json::parse() : Cette fonction prend une chaîne JSON en entrée et la convertit en un objet ou tableau C++
main.cpp// Inclure la bibliothèque jsoncpp
#include "json/json.h"
// Chaîne JSON représentant un objet
std::string jsonData = "{\"nom\": \"Stella\", \"prenom\": \"Astra\", \"age\": 28}";
// Analyse de la chaîne JSON en un objet Json::Value
Json::Value dataJs;
Json::Reader reader;
reader.parse(jsonData, dataJs);
// Accès aux propriétés de l'objet
std::string nom = dataJs["nom"].asString();
int age = dataJs["age"].asInt();
std::cout << nom << std::endl; // Output: Stella
std::cout << age << std::endl; // Output: 28
- Json::write() : Cette fonction prend un objet ou tableau JSON en C++ et le convertit en une chaîne JSON
main.cpp// Inclure la bibliothèque jsoncpp
#include "json/json.h"
// Objet Json::Value
Json::Value dataJs;
dataJs["nom"] = "Kaito";
dataJs["prenom"] = "Ryu";
dataJs["age"] = 30;
// Convertir l'objet en une chaîne JSON
std::string dataJson = dataJs.toStyledString();
// Affichage de la chaîne JSON
std::cout << dataJson << std::endl; // Output: {"nom":"Kaito", "prenom":"Ryu", "age":30}
7.1 Système de fichiers local (C++)
Le système de fichiers local en C++ permet aux applications C++ d'interagir avec les fichiers et les répertoires du système de fichiers local de l'ordinateur.
7.1.1 Lecture d'un fichier
La lecture d'un fichier JSON en local est une étape importante du développement logiciel. Cela permet aux programmes d'accéder rapidement aux données stockées localement, comme les configurations ou les informations utilisateur, pour améliorer l'expérience des utilisateurs finaux.
data.json{
"nom": "Luna",
"espèce": "Chien",
"âge": 5,
"adresse": "Maison, Rue des Nuages, Quartier du Bonheur",
"propriétaire": "Sakura",
"contacts": ["sakura@example.com", "+123456789"],
"produits": [
{"nom": "Collier lumineux de sécurité", "prix": 29.99, "disponible": true},
{"nom": "Os à mâcher en caoutchouc", "prix": 9.99, "disponible": false}
]
}
main.cpp// Inclure les bibliothèques nécessaires
#include <iostream>
#include <fstream>
#include "json/json.h"
int main() {
// Ouverture du fichier JSON en lecture
std::ifstream file("data.json");
Json::Value dataJs;
Json::Reader reader;
// Vérification de l'ouverture du fichier
if (!file.is_open()) {
std::cerr << "Erreur lors de l'ouverture du fichier." << std::endl;
return 1;
}
// Lecture du contenu du fichier JSON
if (!reader.parse(file, dataJs)) {
std::cerr << "Erreur lors du parsing JSON." << std::endl;
return 1;
}
// Affichage des données lues
std::cout << "Données lues depuis le fichier JSON : " << std::endl;
std::cout << dataJs << std::endl;
// Fermeture du fichier
file.close();
return 0;
}
7.1.2 Écriture dans un fichier
L'écriture d'un fichier JSON en local est une étape essentielle du développement logiciel, permettant aux programmes de sauvegarder rapidement des données sur le système de fichiers de l'ordinateur local.
main.cpp// Inclure les bibliothèques nécessaires
#include <iostream>
#include <fstream>
#include "json/json.h"
int main() {
// Création de l'objet à écrire dans le fichier JSON
Json::Value dataJs;
dataJs["nom"] = "Maison de Luna";
dataJs["type"] = "Maison";
dataJs["emplacement"] = "Maison, Rue des Nuages, Quartier du Bonheur";
dataJs["propriétaire"] = "Sakura";
dataJs["contacts"].append("sakura@example.com");
dataJs["contacts"].append("+123456789");
// Ouverture du fichier JSON en écriture
std::ofstream file("data.json");
// Vérification de l'ouverture du fichier
if (!file.is_open()) {
std::cerr << "Erreur lors de l'ouverture du fichier." << std::endl;
return 1;
}
// Écriture du contenu dans le fichier JSON
file << dataJs;
// Fermeture du fichier
file.close();
std::cout << "Données écrites dans le fichier JSON avec succès." << std::endl;
return 0;
}
7.1.3 Modification dans un fichier
main.cpp// Inclure les bibliothèques nécessaires
#include <iostream>
#include <fstream>
#include "json/json.h"
int main() {
// Ouverture du fichier JSON en lecture
std::ifstream file("data.json");
Json::Value dataJs;
Json::Reader reader;
// Vérification de l'ouverture du fichier
if (!file.is_open()) {
std::cerr << "Erreur lors de l'ouverture du fichier." << std::endl;
return 1;
}
// Lecture du contenu du fichier JSON
if (!reader.parse(file, dataJs)) {
std::cerr << "Erreur lors du parsing JSON." << std::endl;
return 1;
}
// Fermeture du fichier
file.close();
// Modification des données (ajout d'un identifiant)
for (unsigned int i = 0; i < dataJs.size(); ++i) {
dataJs[i]["id"] = i + 1;
}
// Ouverture du fichier JSON en écriture
std::ofstream writeFile("data.json");
// Vérification de l'ouverture du fichier
if (!writeFile.is_open()) {
std::cerr << "Erreur lors de l'ouverture du fichier." << std::endl;
return 1;
}
// Écriture des données modifiées dans le fichier JSON
writeFile << dataJs;
// Fermeture du fichier
writeFile.close();
std::cout << "Données modifiées et écrites dans le fichier JSON avec succès." << std::endl;
return 0;
}
7.1.4 Suppression dans un fichier (C++)
data.json[
{
"id": 1,
"nom": "Maison de Luna",
"type": "Maison",
"emplacement": "Maison, Rue des Nuages, Quartier du Bonheur",
"propriétaire": "Sakura",
"contacts": ["sakura@example.com", "+123456789"],
"fonctionnalités": [
"Système de sécurité avec caméras",
"Système d'éclairage intelligent",
"Thermostat connecté"
]
},
{
"id": 2,
"nom": "Résidence Étoile",
"type": "Maison intelligente",
"emplacement": "Lune, Base Lunaire Alpha, Secteur 7G",
"propriétaire": "Stella Astra",
"contacts": ["astra.stella@spacemail.com", "+123456789"],
"fonctionnalités": [
"Contrôle vocal de l'environnement",
"Sécurité avancée avec scanners rétiniens",
"Jardin hydroponique automatisé",
"Système de divertissement holographique"
]
}
]
main.cpp// Inclure les bibliothèques nécessaires
#include <iostream>
#include <fstream>
#include "json/json.h"
int main() {
// Ouverture du fichier JSON en lecture
std::ifstream file("data.json");
Json::Value dataJs;
Json::Reader reader;
// Vérification de l'ouverture du fichier
if (!file.is_open()) {
std::cerr << "Erreur lors de l'ouverture du fichier." << std::endl;
return 1;
}
// Lecture du contenu du fichier JSON
if (!reader.parse(file, dataJs)) {
std::cerr << "Erreur lors du parsing JSON." << std::endl;
return 1;
}
// Fermeture du fichier
file.close();
// Filtrer les objets avec un id différent de 1
Json::Value filteredData;
for (unsigned int i = 0; i < dataJs.size(); ++i) {
if (dataJs[i]["id"] != 1) {
filteredData.append(dataJs[i]);
}
}
// Ouverture du fichier JSON en écriture
std::ofstream writeFile("data.json");
// Vérification de l'ouverture du fichier
if (!writeFile.is_open()) {
std::cerr << "Erreur lors de l'ouverture du fichier." << std::endl;
return 1;
}
// Écriture des données filtrées dans le fichier JSON
writeFile << filteredData;
// Fermeture du fichier
writeFile.close();
std::cout << "Objet avec id 1 supprimé du fichier JSON !" << std::endl;
return 0;
}
data.json[
{
"id": 2,
"nom": "Résidence Étoile",
"type": "Maison intelligente",
"emplacement": "Lune, Base Lunaire Alpha, Secteur 7G",
"propriétaire": "Stella Astra",
"contacts": ["astra.stella@spacemail.com", "+123456789"],
"fonctionnalités": [
"Contrôle vocal de l'environnement",
"Sécurité avancée avec scanners rétiniens",
"Jardin hydroponique automatisé",
"Système de divertissement holographique"
]
}
]
7.2 API (Application Programming Interface) en JSON
Une API (Application Programming Interface) est un ensemble de règles qui permet à différentes applications de communiquer entre elles. Les APIs en JSON utilisent le format JSON (JavaScript Object Notation) pour échanger des données entre le client et le serveur.
7.2.1 Lecture de données depuis une API
La lecture de données depuis une API en JSON est essentielle pour récupérer des informations dynamiques et mises à jour depuis un serveur. Cela permet d'intégrer des données externes dans une application.
https://api.exemple.com/data[
{
"id": 1,
"nom": "HoloHorloge",
"type": "Dispositif holographique",
"fonctionnalités": ["Affichage holographique", "Assistant vocal", "Synchronisation avec l'environnement"],
"propriétaire": "Hiro Takahashi"
},
{
"id": 2,
"nom": "HoloLumière",
"type": "Lampe holographique",
"fonctionnalités": ["Éclairage holographique", "Contrôle vocal", "Changement de couleur"],
"propriétaire": "Jane Doe"
}
]
index.cpp// Inclure les bibliothèques nécessaires
#include
#include
#include
#include "json/json.h"
int main() {
// URL de l'API
std::string apiUrl = "https://api.exemple.com/data";
// Lire les données depuis l'API
// Code à compléter
return 0;
}
7.2.2 Envoi de données à une API
L'envoi de données à une API en JSON permet d'ajouter de nouvelles informations à une base de données ou de créer de nouveaux éléments.
https://api.exemple.com/data[
{
"id": 1,
"nom": "HoloHorloge",
"type": "Dispositif holographique",
"fonctionnalités": ["Affichage holographique", "Assistant vocal", "Synchronisation avec l'environnement"],
"propriétaire": "Hiro Takahashi"
},
{
"id": 2,
"nom": "HoloLumière",
"type": "Lampe holographique",
"fonctionnalités": ["Éclairage holographique", "Contrôle vocal", "Changement de couleur"],
"propriétaire": "Jane Doe"
}
]
index.cpp// Inclure les bibliothèques nécessaires
#include
#include
#include "json/json.h"
int main() {
// URL de l'API
std::string apiUrl = "https://api.exemple.com/data";
// Données à envoyer
// Code à compléter
// Envoyer les données à l'API
// Code à compléter
return 0;
}
7.2.3 Mise à jour des données via une API
La mise à jour des données via une API en JSON permet de modifier des informations existantes dans une base de données ou de mettre à jour des éléments.
https://api.exemple.com/data[
{
"id": 1,
"nom": "HoloHorloge",
"type": "Dispositif holographique",
"fonctionnalités": ["Affichage holographique", "Assistant vocal", "Synchronisation avec l'environnement"],
"propriétaire": "Hiro Takahashi"
},
{
"id": 2,
"nom": "HoloLumière",
"type": "Lampe holographique",
"fonctionnalités": ["Éclairage holographique", "Contrôle vocal", "Changement de couleur"],
"propriétaire": "Jane Doe"
}
]
index.cpp// Inclure les bibliothèques nécessaires
#include
#include
#include "json/json.h"
int main() {
// URL de l'API
std::string apiUrl = "https://api.exemple.com/data/1";
// Données de mise à jour
// Code à compléter
// Mettre à jour les données via l'API
// Code à compléter
return 0;
}
7.2.4 Suppression de données via une API
La suppression de données via une API en JSON permet de supprimer des éléments existants dans une base de données.
https://api.exemple.com/data[
{
"id": 1,
"nom": "HoloHorloge",
"type": "Dispositif holographique",
"fonctionnalités": ["Affichage holographique", "Assistant vocal", "Synchronisation avec l'environnement"],
"propriétaire": "Hiro Takahashi"
},
{
"id": 2,
"nom": "HoloLumière",
"type": "Lampe holographique",
"fonctionnalités": ["Éclairage holographique", "Contrôle vocal", "Changement de couleur"],
"propriétaire": "Jane Doe"
}
]
index.cpp// Inclure les bibliothèques nécessaires
#include
#include
#include "json/json.h"
int main() {
// URL de l'API
std::string apiUrl = "https://api.exemple.com/data/2";
// Supprimer les données via l'API
// Code à compléter
return 0;
}
Laissez un commentaire