So entfernen Sie & quot; von meinem Json in Javascript?

82

Ich versuche, json in meine backbone.js-App zu injizieren. Mein json hat "für jedes Zitat.

Gibt es eine Möglichkeit für mich, dies zu entfernen?
Ich habe unten ein Beispiel bereitgestellt:

[{"Id":1,"Name":"Name}]
Frankie
quelle
3
Warum nicht überhaupt verhindern, dass dies geschieht? Derzeit haben Sie überhaupt kein JSON, aber etwas, das ein bisschen so aussieht.
Leichtigkeitsrennen im Orbit
Es verschlüsselte die Anführungszeichen. Es ist ein völlig anderes Problem, das nicht mit Json, sondern mit ASP.NET MVC zusammenhängt. Möglicherweise möchten wir diesen Beitrag löschen.
Frankie
Verwenden Sie diese Option,
anstatt stackoverflow.com/questions/11147468/… zu

Antworten:

162

Vermutlich haben Sie es in einer Variablen und verwenden JSON.parse(data);. In diesem Fall verwenden Sie:

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

Möglicherweise möchten Sie Ihr JSON-Schreibskript jedoch korrigieren, da "es in einem JSON-Objekt nicht gültig ist.

Niet the Dark Absol
quelle
1
Als ich das versuchte, sah ich, wie sich mein js-Code dahingehend änderte:result.replace(/"/g,'"')
efirat
@kirlisakal Konnten Sie dieses Problem umgehen?
Turbo2oh
Das funktioniert, aber was ist, wenn Daten einen solchen Wert haben : 10"6 inch display?
Shyam Kansagra
Dann möchten Sie vielleicht Ihr JSON-Schreibskript reparieren.
Niet the Dark Absol
Ich sehe dies in einer API, die nicht meine ist. Warum sollte es generieren "statt "? (Ich denke, es ist eine Reaktions-App)
Stevec
17

Die akzeptierte Antwort ist richtig, aber ich hatte ein Problem damit. Als ich meinen Code hinzufügte und den Debugger überprüfte, sah ich, dass er sich von ändert

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

zu

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

Stattdessen benutze ich das:

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

Mit dieser Notation funktioniert es.

efirat
quelle
Ja es funktioniert! aber ich muss das Sitzungsobjekt anpassen, um dies zu beheben :(
muhammad tayyab
4
var data = $('<div>').html('[{&quot;Id&quot;:1,&quot;Name&quot;:&quot;Name}]')[0].textContent;

Das sollte alle codierten Werte analysieren, die Sie benötigen.

Juvil
quelle
Das war die beste Lösung. Ich hatte viele Fluchtcharaktere. Dieser Trick entkam allen
Gultekin
0

Folgendes funktioniert für mich:

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

    return areaElement.value;
}
linnx88
quelle
0

Ich habe die Ersetzungsfunktion in Notepad ++ verwendet und &quot;(ohne Anführungszeichen) durch ersetzt. Das "Ergebnis war ein gültiger JSON

Navin
quelle