Analyser les chaînes JSON dans TypeScript
-
Utilisez
JSON.parse()
pour analyser les chaînes JSON en objets dans TypeScript - Utiliser les gardes pour une conversion sécurisée de la chaîne JSON en objet dans TypeScript
-
Utilisez le mot-clé
Partial
pour éviter les erreurs d’exécution dans TypeScript
Les chaînes sont un moyen de communication sur Internet et toutes les données sont transférées dans un format très populaire appelé JSON. Cette représentation JSON des données représente souvent un objet ou même une classe dans TypeScript.
Ce tutoriel se concentrera sur la façon d’analyser en toute sécurité la chaîne JSON dans un objet TypeScript.
Utilisez JSON.parse()
pour analyser les chaînes JSON en objets dans TypeScript
La fonction JSON.parse()
utilisée en JavaScript peut également être utilisée en TypeScript car TypeScript est un sur-ensemble de JavaScript. Cependant, la méthode suivante suppose que la chaîne JSON à convertir en objet possède tous les attributs requis associés à l’objet.
Exemple de code :
interface Person {
name : string;
age : number;
}
const personString = `{"name" : "david", "age" : 20}`;
const personObj : Person = JSON.parse(personString);
console.log(personObj);
Production:
{
"name": "david",
"age": 20
}
Utiliser les gardes pour une conversion sécurisée de la chaîne JSON en objet dans TypeScript
Les gardes définis par l’utilisateur peuvent vérifier si la chaîne JSON contient tout ou partie des propriétés requises et ainsi la traiter davantage en fonction des besoins immédiats ou la rejeter.
Exemple de code :
interface Person {
name : string;
age : number;
}
function checkPersonType( obj : any ) : obj is Person {
return 'name' in obj && 'age' in obj;
}
const personString1 = `{"name" : "david"}`;
const personString2 = `{"name" : "david", "age" : 20 }`;
const personObj1 : Person = JSON.parse(personString1);
if ( checkPersonType(personObj1)) {
console.log(personObj1);
} else {
console.log(personString1 + ' cannot be parsed');
}
const personObj2 : Person = JSON.parse(personString2);
if ( checkPersonType(personObj2)) {
console.log(personObj2);
} else {
console.log(personString2 + ' cannot be parsed');
}
Production:
"{"name" : "david"} cannot be parsed"
{
"name": "david",
"age": 20
}
Utilisez le mot-clé Partial
pour éviter les erreurs d’exécution dans TypeScript
Certains champs peuvent être absents de la chaîne JSON. Dans ce cas, les attributs de l’objet peuvent être remplis avec des valeurs par défaut.
Le mot-clé Partial
dans TypeScript nous aide à atteindre cet objectif en rendant tous les attributs de l’objet facultatifs et peut donc être enchaîné avec un opérateur de vérification null pour définir les valeurs par défaut.
Exemple de code :
interface Person {
name : string;
age : number;
}
const personString = `{"name" : "david"}`;
const personObj : Partial<Person> = JSON.parse(personString);
console.log(personObj);
console.log( personObj.age ?? 30);
Production:
{
"name": "david"
}
30
Ainsi, bien que la chaîne JSON n’ait pas l’attribut age
comme requis par l’interface Person
, la vérification nulle ou ??
L’opérateur est utilisé pour avoir une valeur par défaut pour l’attribut age
.