Попробуйте это:
$(function() {
var jsArray = @Json.toJson(customerList);
alert("Customer 1 : " + jsArray[0]);
for (var e in jsArray) {
setCustomers(e["name"], e["id"]);
}
});
Символ @ будет отмечать оставшийся код как код Scala для выполнения. без @ код будет послан как в браузере, и браузер не знает библиотеку играть»Скала JSon
По вашему комментарию, customerList
имеет тип Seq[Customer]
поэтому вы должны быть уверены, чтобы иметь десериализатор для Customer
в область шаблона.
Предполагая, что вы имеете Customer
класс, определенный в models
упаковке, и вы читали 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 - это название точки входа в библиотеку scala JSON. – Jean
Теперь у меня это: 'Dessonializer' Json не найден для типа Seq [Customer]. Попытайтесь реализовать неявные Writes или Format для этого типа. «Я попробовал' Json.stringtify', но никакого результата. – Azuken