Java 如何从对象列表中仅返回特定字段以提供JSON响应?

Java 如何从对象列表中仅返回特定字段以提供JSON响应?,java,json,object,playframework,Java,Json,Object,Playframework,我试过使用@jsonignoreperties和@JsonIgnore,但没有成功 这是我的主要观点: @BodyParser.Of(BodyParser.Json.class) public Result index() { //I read the JSON Post request JsonNode json = request().body().asJson(); Item[] items = Json.fromJson(json, Item[].class);

我试过使用@jsonignoreperties和@JsonIgnore,但没有成功

这是我的主要观点:

@BodyParser.Of(BodyParser.Json.class)
public Result index() {
    //I read the JSON Post request
    JsonNode json = request().body().asJson();
    Item[] items = Json.fromJson(json, Item[].class);

    //I convert all the dueTime from string to jodatime DateTime, using the formatter with ISO 8601
    items = addJodaTime(items);

    //I sort the items by dueTime in jodatime DateTime format
    Arrays.sort(items);

    return ok(Json.toJson(items));
}
我把我的忽略的东西放在哪里,这不起作用

@JsonIgnoreProperties({"dueTimeNew"})
public static class Customer implements Comparable<Customer> {

    public int id;
    public String name;
    public String duetime;
    public String jointime;

    @JsonIgnore
    public DateTime dueTimeNew;

    public DateTime getDueTime() {
        return dueTimeNew;
    }
@JsonIgnoreProperties({“dueTimeNew”})
公共静态类Customer实现{
公共int id;
公共字符串名称;
公共时间;
公共字符串连接时间;
@杰索尼奥雷
公共日期时间dueTimeNew;
公共日期时间getDueTime(){
返回dueTimeNew;
}

知道如何只返回id和name吗?

您需要将@JsonIgnore添加到每个需要忽略的字段中。如果不这样做,Jackson将添加所有公共或具有getter的内容(一个
get?????
方法)


在你的例子中,你有很多字段,只有
getduetimenew
被忽略…还要注意,因为你有一个
getDueTime
方法使用
dueTimeNow
,这也将被添加。如果该方法名为
getDueTimeNow
,它可能会被忽略。

为它创建一个单独的类怎么样仅使用您想要返回的字段进行响应?

最后得到的json是什么?检查您的注释是否与您正在使用的json处理器来自同一个包。不要将
org.codehaus.jackson.annotate.JsonIgnore
com.fasterxml.jackson.annotation.JsonIgnore
混用。@Salem,实际上是json按一个字段正确排序,并返回一个对象和相对字段列表。我只想以优雅的方式返回子集。@mike实际上我有这些(抱歉,我还不知道如何在注释中格式化代码!):导入导入org.joda.time.DateTime;导入org.joda.time.format.DateTimeFormat;导入org.joda.time.format.DateTimeFormatter;导入play.libs.Json;导入play.mvc.BodyParser;导入play.mvc.Controller;导入play.mvc.Result;导入com.fasterxml.jackson.databind.JsonNode;//导入org.codehaus.jackson.JsonNode;导入com.fasterxml.jacks在.annotation.JsonIgnore;import com.fasterxml.jackson.annotation.JsonIgnoreProperties;import java.util.*;我还将把注释添加到getter中,因为您所寻找的行为随版本而异,我们看不到全部情况。