2016-06-22 8 views
0

Ich benutze json.stringify() Funktion, um mein Ergebnis in richtig mein div output1 zu drucken.Json.stringify() -Funktion, um das Ergebnis im richtigen Format auszugeben

$("div#output1").html(JSON.stringify(response))

Das Ergebnis ist:

" {\n \"prediction\": \"Positive\",\n \"confidence_score\": {\n \"Positive\": \"56.49\",\n \"Negative\": \"43.51\"\n }\n}\n\r\n" 

Wie kann ich diese \n \ \r entfernen?

+2

[Duplizieren] (http://stackoverflow.com/questions/4253367/how-to-escape-a-json-string-containing-newline-chara cters-using-javascript) –

Antwort

6

Verwenden text() statt html():

$("div#output1").text(JSON.stringify(response)); 

Das wird eine richtige Textart Knoten in der DOM erstellen und nicht zu HTML entkommen.

Wenn das Problem weiterhin besteht, kann es serverseitig sein. In diesem Fall sehen Sie sich die HTTP-Antwort an, um zu sehen, was Sie tatsächlich vom Server erhalten.

In Chrome drücken Sie F12, um die Dev Tools zu öffnen, gehen Sie zum Netzwerk, laden Sie die Seite mit F5 und feuern Sie die AJAX Anfrage erneut ab. An diesem Punkt sehen Sie den HTTP-Anfrage/Antwort-Eintrag. Klicken Sie darauf und überprüfen Sie die Antwort Blatt, dort sehen Sie die rohen ASCII-Daten vom Server bedient. Wenn das immer noch maskiert ist, ist das Problem serverseitig.

In PHP verwenden Sie var_dump(), um diese Zeichenfolge direkt auf die Seite (ohne AJAX) auszugeben und betrachten Sie es. Es kann bereits in der Datenbank maskiert sein. In diesem Fall müssen Sie es irgendwo entlang der Antwort-Pipeline entschlüsseln. Am einfachsten ist es, es direkt in JS auf der Clientseite zu entschlüsseln. Das erfordert nicht, dass Sie den Rest der Anwendung ändern müssen (nämlich die Eingabeformulare). Es ist in der Tat eine gute Idee, Strings in der Datenbank zu behalten.

<pre id="output1"></pre> 
+0

immer noch die gleiche Ausgabe – tanya

+0

aussehen wie Server-Seite in der Tat – ben

+0

Wie gesagt, setzen Sie '

' Tags um den Knoten, verwenden Sie beide: 'text()' und diese Tags. –
                        
                            
    pid
                                
                            
                        
                    

1

Ich bin nicht sicher, wie man dieses seltsame Ausgabe:

Sie können <pre> Tags für die Ausgabe des Textknotens haben wollen. Wie Sie in den Schnipsel sehen können, hat der JSON keine \n und Freunde.

Ich verwendete eine pre anstelle von div, also wenn \n dort wäre, würde es eine neue Zeile erstellen.

var response = { 
 
    "prediction": "Positive", 
 
    "confidence_score": { 
 
    "Positive": "56.49", 
 
    "Negative": "43.51" 
 
    } 
 
}; 
 

 
$("pre#output1").html(JSON.stringify(response));
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<pre id="output1"></pre>

Noch was Sie auf Ihrem String tun können, ist, die Werte zu ersetzen ... Etwas wie folgt aus:

var output = " {\n \"prediction\": \"Positive\",\n \"confidence_score\": {\n \"Positive\": \"56.49\",\n \"Negative\": \"43.51\"\n }\n}\n\r\n"; 
 
$('#original').html(output); 
 
$('#output1').html(output.replace(/\r|\n|\"/g, ''));
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
original: 
 
<pre id="original"></pre> 
 
output: 
 
<pre id="output1"></pre>

+0

thanx.this ersetzen Sache arbeitete mit meinem Div auch.Aber ich mag das Format wie 'code' String seine‚{ "Vorhersage": "Positive", "confidence_score": { "Positive": "56,49", "Negativ": "43.51" } } '(Länge = 123) – tanya

+0

ihr wird viele Komplikationen sein, wenn ich Pre verwende. – tanya

Verwandte Themen