2016-12-13 5 views
0

でJSON入力を使用してだから私は、ビューのいずれかに、1 JSON 1を含むパラメータを渡す:はPlayframework

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

、ここでは、私はビューでそれを受け取る方法です:

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

私が欲しいですジャバスクリプト内のJSONにsolverResponseを変換することは:私はこれを行うとき

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

、ブラウザはそれを文句:

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

Jsonを印刷すると、引用符は ""に変換されます。この問題を解決するにはどうすればよいですか? escaping raw HTML contentと同様に

答えて

1

が、あなたはjavascriptのメソッドにそれを正しく渡すために@Html呼び出しで文字列をラップする必要がある、すなわち

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

引数でJSON値を渡すしかし、この方法では、ビットcludgyです私は、JSONを返す別のエンドポイントを作成し、あなたのjavascriptでJSONをロードするためにajax呼び出しを使用することをお勧めします。

0

jsonが有効な場合は、@ josephconleyの回答を使用して、単にHtmlとしてキャストできます。

var solverLogJson = @Html(solverResponse.toString); 

JSONは有効なJavaScriptですので、あなたはJSON.parseを使用して、再びそれを解析する必要はありません。