Java 为什么play.libs.Json.toJson返回空对象?
为什么我不能将Person对象转换为Json 我的个人模型:Java 为什么play.libs.Json.toJson返回空对象?,java,json,playframework,playframework-2.3,Java,Json,Playframework,Playframework 2.3,为什么我不能将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.ebe
@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);
}
[{},{},{},{},{}]
控制器方法返回的结果JSON:
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);
}
[{},{},{},{},{}]
您的问题与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;
}
}
显示从
toJson
和JsonNode
的导入。同时添加你的游戏版本。我添加了一个问题。