Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/378.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为什么play.libs.Json.toJson返回空对象?_Java_Json_Playframework_Playframework 2.3 - Fatal编程技术网

Java 为什么play.libs.Json.toJson返回空对象?

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

为什么我不能将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);
}
[{},{},{},{},{}]
控制器方法返回的结果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
的导入。同时添加你的游戏版本。我添加了一个问题。