2017-03-23 6 views
-1

Ich bekomme eine JSON-Antwort, die ich analysieren und auf dem Bildschirm anzeigen möchte. Das Problem ist, dass es manchmal ohne Zitat um einige der String-Werte kommt. Zum Beispiel: reference":D578699A, "success":1, "error_code":0, "error_text":"Success" } Es könnte "" für einige der Strings haben. Wie soll ich mit dieser Situation umgehen? Danke vielmals!Parse JSON ohne Anführungszeichen in JavaScript

+1

Wenn Ihr Server Sie ungültige JSON ist vorbei, sollten Sie aktualisieren es richtig ausgebildet Daten zu übergeben. Das ist die wahre Antwort hier. Sie sollten den Server reparieren, der Ihnen diese schlechten Daten gibt. Ich nehme jedoch an, dass es möglich ist, dies mit Code zu beheben. Es wäre jedoch ein Pflaster für das eigentliche Problem. Wenn Sie 'JSON.parse' nicht in einer Zeichenfolge aufrufen können, um daraus ein JSON-Objekt zu machen, sollten Sie den Server reparieren, von dem Sie die Zeichenfolge erhalten haben. IMO. – frosty

+0

^dies. Klebeband nicht auf das Problem klopfen, um es zu reparieren, reparieren Sie es den richtigen Weg. –

+0

es hat etwas zu tun mit Ihrem Server nicht in Ihrem Javscript auch Server würde nie generieren, dass diese Art von JSON Ergebnis, ich meine eine Zeichenfolge ohne ein Doppelzitat – Beginner

Antwort

2

Nun, die beste Antwort ist, den Buggy-Code im Dienst zu reparieren, der es tut.

Wenn Sie also JSON.parse nicht verwenden können, können Sie in die alte Schule gehen und eval oder eine neue Funktion verwenden.

var x = '{foo:"bar", "cat" : "dog"}'; 
eval("var o =" + x); 
console.log(o); 

oder

var x = '{foo:"bar", "cat" : "dog"}'; 
var o = new Function("return " + x)(); 
console.log(o) 

Der Einsatz dieser Lösungen öffnet Sie XSS-Angriffe auf ..

Eine andere Möglichkeit ist es, einen regulären Ausdruck schreiben, die es

1

Einige Beobachtungen zu beheben versucht :

  • JSON vom Server kommt keine gültige JSON, da es einen String-Wert ohne Anführungszeichen (") hat.

enter image description here

Dieses Problem sollte nur von Server-Seite korrigiert werden. So, dass Sie die gültige JSON als Antwort wie unten erhalten.

enter image description here

Verwandte Themen