Analizar cadenas JSON en TypeScript

Shuvayan Ghosh Dastidar 30 enero 2023
  1. Utilice JSON.parse() para analizar cadenas JSON en objetos en TypeScript
  2. Use guardias para la conversión segura de una cadena JSON a un objeto en TypeScript
  3. Use la palabra clave Partial para evitar errores de tiempo de ejecución en TypeScript
Analizar cadenas JSON en TypeScript

Las cadenas son un medio de comunicación a través de Internet y todos los datos se transfieren en un formato muy popular conocido como JSON. Esta representación JSON de los datos a menudo representa un objeto o incluso una clase en TypeScript.

Este tutorial se centrará en cómo analizar de forma segura la cadena JSON en un objeto TypeScript.

Utilice JSON.parse() para analizar cadenas JSON en objetos en TypeScript

La función JSON.parse() que se usa en JavaScript también se puede usar en TypeScript, ya que TypeScript es un superconjunto de JavaScript. Sin embargo, el siguiente método asume que la cadena JSON que se convertirá en el objeto tiene todos los atributos necesarios asociados con el objeto.

Código de ejemplo:

interface Person {
    name : string;
    age : number;
}

const personString = `{"name" : "david", "age" : 20}`;

const personObj : Person = JSON.parse(personString);
console.log(personObj);

Producción :

{
  "name": "david",
  "age": 20
}

Use guardias para la conversión segura de una cadena JSON a un objeto en TypeScript

Los guardias definidos por el usuario pueden verificar si la cadena JSON contiene todas o algunas de las propiedades requeridas y, por lo tanto, procesarla más de acuerdo con las necesidades inmediatas o rechazarla.

Código de ejemplo:

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');
}

Producción :

"{"name" : "david"} cannot be parsed"
{
  "name": "david",
  "age": 20
}

Use la palabra clave Partial para evitar errores de tiempo de ejecución en TypeScript

Algunos campos pueden estar ausentes en la cadena JSON. En ese caso, los atributos del objeto se pueden rellenar con algunos valores predeterminados.

La palabra clave Partial en TypeScript nos ayuda a lograr esto al hacer que todos los atributos en el objeto sean opcionales y, por lo tanto, se pueden encadenar con un operador de verificación nulo para establecer valores predeterminados.

Código de ejemplo:

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);

Producción :

{
  "name": "david"
}
30

Por lo tanto, aunque la cadena JSON no tiene el atributo age como lo requiere la interfaz Persona, la verificación nula o ?? El operador se utiliza para tener un valor predeterminado para el atributo 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