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}]

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

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.


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.


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.


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;
}

0

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

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.