Java JSON序列化器Play框架

时间:2015-08-06 14:59:53

标签: java json playframework

您好我正在使用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?

1 个答案:

答案 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())) ;