Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

343
Visualizações
¿Cómo JSON.stringifica un mapa ES6?

Me gustaría comenzar a usar ES6 Map en lugar de objetos JS, pero me detengo porque no puedo entender cómo JSON.stringify() a Map . Se garantiza que mis claves serán cadenas y mis valores siempre aparecerán en la lista. ¿Realmente tengo que escribir un método contenedor para serializar?

over 4 years ago · Santiago Trujillo
3 Respostas
Responde à pergunta

0

Tanto JSON.stringify como JSON.parse admiten un segundo argumento. reviver replacer . Con replacer y reviver a continuación, es posible agregar soporte para el objeto de mapa nativo, incluidos los valores profundamente anidados

 function replacer(key, value) { if(value instanceof Map) { return { dataType: 'Map', value: Array.from(value.entries()), // or with spread: value: [...value] }; } else { return value; } }
 function reviver(key, value) { if(typeof value === 'object' && value !== null) { if (value.dataType === 'Map') { return new Map(value.value); } } return value; }

uso :

 const originalValue = new Map([['a', 1]]); const str = JSON.stringify(originalValue, replacer); const newValue = JSON.parse(str, reviver); console.log(originalValue, newValue);

Anidamiento profundo con combinación de matrices, objetos y mapas

 const originalValue = [ new Map([['a', { b: { c: new Map([['d', 'text']]) } }]]) ]; const str = JSON.stringify(originalValue, replacer); const newValue = JSON.parse(str, reviver); console.log(originalValue, newValue);
over 4 years ago · Santiago Trujillo Relatório

0

No puede secuenciar directamente la instancia del Map ya que no tiene ninguna propiedad, pero puede convertirla en una matriz de tuplas:

 jsonText = JSON.stringify(Array.from(map.entries()));

Para el reverso, utilice

 map = new Map(JSON.parse(jsonText));
over 4 years ago · Santiago Trujillo Relatório

0

no puedes

Las claves de un mapa pueden ser cualquier cosa, incluidos los objetos. Pero la sintaxis JSON solo permite cadenas como claves. Así que es imposible en un caso general.

Se garantiza que mis claves serán cadenas y mis valores siempre serán listas

En este caso, puede utilizar un objeto plano. Tendrá estas ventajas:

  • Se podrá encadenar a JSON.
  • Funcionará en navegadores más antiguos.
  • Podría ser más rápido.
over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda