- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我尝试在 Play 模板中传递数据Seq[],根据Play Framework文档( http://www.playframework.com/documentation/2.2.x/ScalaJson ),您可以将其转换为Json数组。我试过这个:
$(function() {
var jsArray = JSON.toJSON(customerList);
alert("Customer 1 : " + jsArray[0]);
for (var e in jsArray) {
setCustomers(e["name"], e["id"]);
}
});
但是 chrome 控制台向我显示一条错误消息:
Uncaught TypeError: Object #<Object> has no method 'toJSON'
我尝试导入 play.api.libs.json._
但它也不起作用。
有人可以帮助我吗?
最佳答案
试试这个:
$(function() {
var jsArray = @Json.toJson(customerList);
alert("Customer 1 : " + jsArray[0]);
for (var e in jsArray) {
setCustomers(e["name"], e["id"]);
}
});
@ 会将剩余的代码标记为要执行的 scala 代码。如果没有 @,代码将按原样发送到浏览器,并且浏览器不知道 play'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._
位于模板顶部
关于javascript - 如何将 scala Seq[] 转换为 Javascript 数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21016878/
我是一名优秀的程序员,十分优秀!