TypeScript:
Travailler avec JSON
Comment faire :
Parser du JSON en un Objet TypeScript
Pour convertir une chaîne JSON en un objet TypeScript, vous utilisez la méthode JSON.parse()
. Cela est utile lors de la réception de données JSON d’un serveur web ou lors de la lecture d’un fichier JSON.
const jsonStr = '{"name": "John Doe", "age": 30}';
const obj = JSON.parse(jsonStr);
console.log(obj.name); // Sortie : John Doe
Transformer un Objet TypeScript en Chaîne JSON
Pour convertir un objet TypeScript en chaîne JSON, vous utilisez la méthode JSON.stringify()
. Cela est particulièrement utile lorsque vous avez besoin d’envoyer des données à un serveur web.
const person = {
name: "Jane Doe",
age: 25,
};
const jsonStr = JSON.stringify(person);
console.log(jsonStr); // Sortie : {"name":"Jane Doe","age":25}
Travailler avec les Interfaces
Vous pouvez définir des interfaces TypeScript pour travailler de manière transparente avec les données JSON en assurant la structure de vos objets.
interface Person {
name: string;
age: number;
}
const jsonStr = '{"name": "Alex", "age": 28}';
const person: Person = JSON.parse(jsonStr);
console.log(person.age); // Sortie : 28
Utiliser des bibliothèques tierces populaires
Pour des scénarios plus complexes, comme la validation de schéma ou la transformation, vous pourriez avoir recours à des bibliothèques comme class-transformer
ou AJV
(Another JSON Schema Validator).
class-transformer
Cette bibliothèque peut transformer des objets simples en instances de classe et vice-versa, ce qui est utile pour la vérification et la manipulation des types.
import "reflect-metadata";
import { plainToClass } from "class-transformer";
import { Person } from "./person";
const jsonStr = '{"name": "Mia", "age": 22}';
const person = plainToClass(Person, JSON.parse(jsonStr));
console.log(person instanceof Person); // Sortie : true
console.log(person.name); // Sortie : Mia
AJV
AJV est une bibliothèque qui permet une validation rapide du schéma JSON. Cela signifie que vous pouvez valider des objets JSON contre des schémas préétablis.
import Ajv from "ajv";
const ajv = new Ajv();
const schema = {
type: "object",
properties: {
name: { type: "string" },
age: { type: "number" },
},
required: ["name", "age"],
additionalProperties: false,
};
const validate = ajv.compile(schema);
const valid = validate({ name: "Tom", age: 24 });
console.log(valid); // Sortie : true
if (!valid) console.log(validate.errors);
Avec ces outils et techniques, vous pouvez gérer de manière efficace les données JSON dans vos applications TypeScript, en assurant l’intégrité des données et en tirant parti du système de type puissant de TypeScript.