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.