Analizar cadenas JSON en TypeScript
-
Utilice
JSON.parse()
para analizar cadenas JSON en objetos en TypeScript - Use guardias para la conversión segura de una cadena JSON a un objeto en TypeScript
-
Use la palabra clave
Partial
para evitar errores de tiempo de ejecución 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
.