2013-05-12 1 views
7

Quando si converte un elenco Scala di stringhe in un array di stringhe javascript con il motore di gioco template, probabilmente iniziare con qualcosa di simile ...Scala Play - Come convertire un elenco di stringhe Scala in una matrice di stringhe javascript (evitando il problema ")?

var strArray = [@scalaListOfStrings.mkString(",")]; 

... e scoprirete che questo non sta funzionando , perché mancano le virgolette attorno alle stringhe. Poi si potrebbe provare qualcosa di simile ...

var strArray = [@scalaListOfStrings.map(s => "\"" + s + "\"").mkString(",")]; 

... solo per scoprire che questo avvolgere le corde in " e non ". L'unico modo sono stato in grado di fare questo lavoro è stato con ...

var strArray = [@Html(scalaListOfStrings.map(s => "\"" + s + "\"").mkString(","))]; 

... e la mia domanda è: E 'questo il miglior/unico modo per fare questo?

risposta

5

Potete contare sul metodo Json.toJson() per effettuare la conversione

@import play.api.libs.json._ 

var strArray = @Json.stringify(Json.toJson(List("hello", "world", "everybody"))) 
2

Non dimenticare @Html.

@Html(Json.stringtify(Json.toJson(Scala object)))