試試這個:
$(function() {
var jsArray = @Json.toJson(customerList);
alert("Customer 1 : " + jsArray[0]);
for (var e in jsArray) {
setCustomers(e["name"], e["id"]);
}
});
的@將迎來剩餘的代碼被執行Scala代碼。沒有@的代碼將被作爲是對瀏覽器和瀏覽器不知道玩」的Scala JSON庫
根據您的意見,customerList
具有類型Seq[Customer]
因此,你必須確保在有一個解串器Customer
模板範圍。
假設你已經在models
包中定義的Customer
類和你讀the documentation您會有與你一起定義Customer
隱格式Customer
對象。在這種情況下,您需要在模板頂部的import models.Customer
。
樣本客戶定義看起來像 包款
case class Customer(name:String,...)
object Customer{
import play.api.libs.json._
implicit val customerFormats=Json.format[Customer]
}
如果您Customer
類型取決於其他自定義類型,則需要對這些太例如導入或定義的Json序列化:
package models
case class CustomerAddress(street:String,postCode:String)
case class Customer(name:String,address:CustomerAddress,...)
object Customer{
import play.api.libs.json._
// need to define 2 json formats : 1 for CustomerAddress and 1 for Customer
implicit val customerAddressFormats=Json.format[CustomerAddress]
implicit val customerFormats=Json.format[Customer]
}
根據您的意見,Customer
類是在另一個可能不依賴於Play的項目中定義的,在這種情況下,您仍然可以在另一個對象中定義自定義序列化器
package models
object IdentityAccessComponentFormats{
import play.api.libs.json._
implicit val customerAddressFormats=Json.format[CustomerAddress]
implicit val customerFormats=Json.format[Customer]
}
再加入
import models.IdentityAccessComponentFormats._
在
我已經試過您的模板的頂部,併發揮顯示器:'沒有發現:價值JSON' – Azuken
正確的語法是JSON(大寫'J'小寫'兒子')JSON是JavaScript JSON庫入口點的名稱。 Json是play'scala JSON庫入口點的名稱。 – Jean
現在我這樣做了:'找不到類型爲Seq [Customer]的Json解串器。嘗試實現這種類型的隱式寫入或格式。「我嘗試了'Json.stringtify'但沒有結果。 – Azuken