【问题标题】:Why does play.libs.Json.toJson return an empty object?为什么 play.libs.Json.toJson 返回一个空对象?
【发布时间】:2014-11-29 14:01:47
【问题描述】:

为什么我不能将我的 Person 对象转换为 Json?

我的人物模型:

@Entity
public class Person extends Model {

   @Id
   private Long id;

   private String value;   
}

控制器方法:

import com.fasterxml.jackson.databind.JsonNode;
import models.Person;
import play.Logger;
import play.db.ebean.Model;
import play.mvc.Controller;
import play.mvc.Result;
import views.html.index;

import java.util.List;

import static play.data.Form.form;
import static play.libs.Json.toJson;

...

public static Result getJsonPersons() {
    List<Person> persons = new Model.Finder(Long.class, Person.class).all();
    JsonNode jsonNode = toJson(persons);
    Logger.debug("JSON > "+jsonNode.toString());
    return ok(jsonNode);
}

行动路线:

GET   /persons      controllers.Application.getJsonPersons()

控制器方法返回的 JSON 结果:

[{},{},{},{},{}]

【问题讨论】:

  • 显示来自toJsonJsonNode 的导入。同时添加您的播放版本。
  • 我添加了一个问题。

标签: java json playframework playframework-2.3


【解决方案1】:

您的问题与 Person 类中的字段访问修饰符有关。这两个字段都是私有的,因此play.libs.Json.toJson 无法访问它们。您必须提供适当的 getter 方法或公开这些字段。

@Entity
public class Person extends Model {

    @Id
    private Long id;

    private String value;

    public Long getId() {
        return id;
    }

    public String getValue() {
        return value;
    }
}

【讨论】:

    猜你喜欢
    • 2020-12-23
    • 1970-01-01
    • 1970-01-01
    • 2018-02-23
    • 2016-06-04
    • 2021-08-10
    • 2018-12-17
    • 2019-11-25
    • 1970-01-01
    相关资源
    最近更新 更多