Converter objeto para Json Javascript

| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |

Uma estrutura circular é um objeto que se refere a si mesmo. No exemplo a seguir, o objeto (obj) é referenciado como o valor da chave de localização.

Assim como XML, JSON (JavaScript Object Notation) é usado para armazenamento e troca de dados. JSON é muito mais fácil de analisar ou dividir do que XML e é preferencialmente usado ao converter objetos em strings com o método JSON.stringify().

Erro ao converter estruturas circulares em JSON

h2>

JSON não oferece suporte a referências de objeto, portanto, tentar encadear um objeto JSON que referencia a si mesmo resultará em um erro de digitação. Este é um erro que pode ser gerado quando você tenta alterar um valor que não pode ser alterado ou quando você usa um valor de forma inadequada.

Captura de tela 402

Soluções possíveis

JSON.chaaîne ify() converte não apenas os produtos aceitáveis das cadeias, mas também contém um parâmetro de substituição que pode substituir os valores se a função transmitida for especificada para isso. analise o código abaixo para entender como isso acontece.

Em nosso replaceFunc acima, nós chamar WeakSet , que é um objeto que armazena objetos soltos ou referências de objetos. Cada objeto de um WeakSet só pode aparecer uma vez, filtrando assim repetidos ou circulando dados r. A palavra-chave new é um operador que cria um objeto vazio.

Em nossa instrução de retorno, aninhamos as instruções if. Nossa primeira instrução if usa o operador typeof que retorna o tipo de primitivo (Undefined, Null, Boolean, Number, String, Function, BigInt, Symbol) para avaliar.

Se nosso tipo de valor for estritamente igual a um objeto e o valor desse objeto não for zero, ele continuará no segundo if, verificando se o valor está no WeakSet().

Quando invocamos JSON.stringify (), passamos tanto para nossa estrutura circular original quanto para nossa função de substituição.

Isso nos dará o resultado da string desejada no console.

; "{" name ":" John "," age ": 23," gender ":" Male "}"

Outras soluções possíveis para este erro são usar bibliotecas como como circular-json , que é um analisador JSON circular, ou cycle.js , criado para usuários do IE8.

JSON circular serializa e desserializa objetos JSON válidos contendo referências circulares de e para um formato JSON especializado.

Conclusão

JSON não é compatível referências de objetos, portanto, se você tentar encadear um objeto JSON que se refere a si mesmo, ocorrerá um erro de digitação .

Uma estrutura circular é um objeto que se refere a si mesmo. Para poder encadear esses objetos, os desenvolvedores podem usar o parâmetro replace no método stringify(), certificando-se de que a função passada filtre dados repetidos ou circulares.

Usin g bibliotecas como circular-json também podem ser uma solução para este erro.