您好我正在使用Play Framework 2.3,我想在Java Script中使用Java Object。为此,我尝试使用json。这是对象:
public class List{
protected List<entry> entries = new ArrayList<>();
public void setEntries(entry> entries) {
this.entries = entries;
}
public void addEntry(Entry entry){
Entries.add(entry);
public List<List.Entry> getEntry() {
if (entries == null) {
entries = new ArrayList<Entry>();
}
return this.entries;
} Entry类只包含一个double和一个String + setter和getter。 这是我想要使用对象的视图
@(list: List)
@import play.api.libs.json.Json
@main("VIEW") {
...
<script>
var arr = @Html(Json.toJson(list.getEntry)) ;
...
</script>
}
我总是收到消息:&#34;找不到类型为java.util.List [models.List.Entry]的Json序列化程序。尝试为此类型实现隐式写入或格式。&#34;我能找到的唯一指南和教程是scala,但我使用java。所以kann你解释了我如何写一个序列化器或者在不使用json的情况下将对象转换为javaScript?
答案 0 :(得分:1)
您可以在Entry类上编写一个简单的toJson方法。
public ObjectNode toJson() {
ObjectNode node = Json.newObject();
node.put("yourDouble", doubleField);
node.put("yourString", stringField);
return node;
}
然后在你的参赛作品中使用它。 在html中你可以做这样的事情:
var arr = @Html(Json.toJson(list.getEntry.map(_.toJson())) ;