Cómo eliminar & quot; desde mi Json en javascript?

82

Estoy tratando de inyectar json en mi aplicación backbone.js. Mi json tiene "para cada cotización.

¿Hay alguna forma de eliminar esto?
He proporcionado una muestra a continuación:

[{"Id":1,"Name":"Name}]
Frankie
fuente
3
¿Por qué no evitar que esto suceda en primer lugar? En la actualidad , no tiene JSON en absoluto, sino algo que se parece un poco.
Lightness Races in Orbit
Estaba codificando las comillas. Es un problema totalmente diferente no relacionado con Json, pero relacionado con ASP.NET MVC. Es posible que queramos eliminar esta publicación.
Frankie
use esto en lugar de reemplazar stackoverflow.com/questions/11147468/…
harun karaca

Respuestas:

162

Es de suponer que lo tiene en una variable y lo está utilizando JSON.parse(data);. En cuyo caso, utilice:

JSON.parse(data.replace(/"/g,'"'));

Sin embargo, "es posible que desee corregir su script de escritura JSON, porque no es válido en un objeto JSON.

Niet the Dark Absol
fuente
1
Cuando intento esto, vi que mi código js cambiaba a eso:result.replace(/"/g,'"')
efirat
@kirlisakal, ¿pudiste solucionar este problema?
turbo2oh
Esto funciona, pero ¿qué pasa si los datos tienen algún valor como este 10"6 inch display:?
Shyam Kansagra
Entonces es posible que desee arreglar su script de escritura JSON.
Niet the Dark Absol
Veo esto en una API que no es mía. ¿Por qué generaría en "lugar de "? (Creo que es una aplicación de reacción)
stevec
17

La respuesta aceptada es correcta, sin embargo, tuve un problema con eso. Cuando agrego mi código, verificando el depurador, vi que cambia de

result.replace(/"/g,'"')

a

result.replace(/"/g,'"')

En lugar de esto, uso eso:

result.replace(/(&quot\;)/g,"\"")

Con esta notación funciona.

efirat
fuente
¡Si, funciona! pero necesito personalizar el objeto Session para solucionar esto :(
muhammad tayyab
4
var data = $('<div>').html('[{&quot;Id&quot;:1,&quot;Name&quot;:&quot;Name}]')[0].textContent;

que debería analizar todos los valores codificados que necesita.

Juvil
fuente
Esa fue la mejor solución. Tenía muchos personajes de escape. Este truco representan literalmente de todo
Gultekin
0

Lo siguiente funciona para mí:

function decodeHtml(html) {
    let areaElement = document.createElement("textarea");
    areaElement.innerHTML = html;

    return areaElement.value;
}
linnx88
fuente
0

Usé la función de reemplazo en Notepad ++ y reemplacé &quot;(sin comillas) con "y el resultado fue json válido

Navin
fuente