Analyser les chaînes JSON dans TypeScript

Shuvayan Ghosh Dastidar 30 janvier 2023
  1. Utilisez JSON.parse() pour analyser les chaînes JSON en objets dans TypeScript
  2. Utiliser les gardes pour une conversion sécurisée de la chaîne JSON en objet dans TypeScript
  3. Utilisez le mot-clé Partial pour éviter les erreurs d’exécution dans TypeScript
Analyser les chaînes JSON 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.

Shuvayan Ghosh Dastidar avatar Shuvayan Ghosh Dastidar avatar

Shuvayan is a professional software developer with an avid interest in all kinds of technology and programming languages. He loves all kinds of problem solving and writing about his experiences.

LinkedIn Website