2016-12-13 3 views
0

So gehe ich Parameter, darunter eine Json ein, zu einer der Ansichten:Mit json Eingänge in Playframework

val json: JsValue = Json.toJson(ResultJson.staticResULT) 
Ok(views.html.main("")(StaticContent.initialFormContent, json)) 

und hier ist, wie ich es in der Ansicht erhalten:

@import play.api.libs.json.JsValue 
@import play.api.libs.json.JsString 
@(title: String)(formContent: FormContent, solverResponse: JsValue = JsString("")) 

Ich möchte zu konvertieren solverResponse innerhalb der Javascript JSon:

var solverLogJson = JSON.parse("@solverResponse.toString()"); 

, wenn ich dies tun, beschwert sich der Browser an, dass:

VM11598:1 Uncaught SyntaxError: Unexpected token & in JSON at position 1(…) 

die Json Drucken ist es klar, dass die Anführungszeichen "werden in " umgewandelt. Wie kann ich dieses Problem beheben?

Antwort

1

Ähnlich escaping raw HTML content, müssen Sie die Zeichenfolge in einem @Html Aufruf wickeln Sie es auf eine Javascript-Methode richtig passieren, dh

var solverLogJson = JSON.parse("@Html(solverResponse.toString())"); 

Diese Methode JSON-Werte über Argumente der Weitergabe ist ein bisschen cludgy jedoch Ich würde vorschlagen, einen separaten Endpunkt zu erstellen, der JSON zurückgibt und einen Ajax-Aufruf verwendet, um den JSON in Ihrem Javascript zu laden.

0

Wenn es gültig ist, json, können Sie die Antwort von @ josephconley verwenden und sie einfach als Html ausgeben.

var solverLogJson = @Html(solverResponse.toString); 

Seit json gültig Javascript ist, sollten Sie es nicht analysieren, müssen wieder JSON.parse verwenden.

Verwandte Themen