gpt4 book ai didi

java - 为什么 play.libs.Json.toJson 返回一个空对象?

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:05:30 25 4
gpt4 key购买 nike

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

我的个人模型:

@Entity
public class Person extends Model {

@Id
private Long id;

private String value;
}

Controller 方法:

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()

Controller 方法返回的结果 JSON:

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

最佳答案

您的问题与 Person 类中的字段访问修饰符有关。这两个字段都是私有(private)的,因此 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;
}
}

关于java - 为什么 play.libs.Json.toJson 返回一个空对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27203094/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com