Fino señores que hoy hay resumen
JSON.parse y JSON.stringify
Código Clase
const obj1 = {
a: 'a',
b: 'b',
c: {
d: 'd',
e: 'e',
},
editA() {
this.a = 'Abcd'
}
};
const stringifiedComplexObj = JSON.stringify(obj1);
// "{\"a\":\"a\",\"b\":\"b\",\"c\":{\"d\":\"d\",\"e\":\"e\"},\"f\":[1,\"2\",3]}"
const obj2 = JSON.parse(stringifiedComplexObj);
// {a: "a", b: "b", c: {d: "d", e: "e"}}
JSON.stringify()
El método JSON.stringify() convierte un objeto o valor de JavaScript en una cadena JSON, reemplazando opcionalmente valores si se especifica una función de reemplazo u opcionalmente incluyendo solo las propiedades especificadas si se especifica una matriz de reemplazo.
- Descripción
- Los objetos Boolean, Number, and String se convierten a sus valores primitivos, de acuerdo con la conversión semántica tradicional.
- Si durante la conversión se encuentra un undefined, una Function, o un Symbol se omite (cuando se encuentra en un objeto) o se censura a null (cuando se encuentra en un array). JSON.stringify() puede devolver undefined cuando se pasan valores “puros” como JSON.stringify(function(){}) o JSON.stringify(undefined).
- Todas las propiedades que utilicen Symbol en los nombres de la clave se ignoran por completo, incluso si utilizan una función replacer.
- Las instancias de Date implementan la función toJSON() devolviendo una cadena de texto (igual que date.toISOString()). Por lo que son tratadas como strings.
- Los números Infinity y NaN, así como el valor null, se consideran null.
- El resto de instancias de Object (incluyendo Map, Set, WeakMap, y WeakSet) sólo tendrán serializadas sus propiedades enumerables.
JSON.stringify () convierte un valor en notación JSON que lo representa:
JSON.parse()
El método JSON.parse() analiza una cadena de texto (string) como JSON, transformando opcionalmente el valor producido por el análisis.
Why JSON.parse(JSON.stringify()) is a bad practice to clone an object in JavaScript
- Puedes perder tipos de datos.
- JavaScript no te avisara cuando pierdas algún tipo de dato al usar JSON.stringify(), asi que GG mi rey
- Convierte tipos de datos no soportados en soportados, como
infinity
yNaN
ennull
- Los tipos de datos
Date
serán parseados comostrings
, no comoDate
- No es tan rápido y eficiente.
¿Quieres ver más aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesión.