Java - 使用Gson库从servlet返回JSON

时间:2011-08-10 15:35:53

标签: java json servlets return gson

我正在使用GSON库。 我有一个返回JSON的程序。 JSON以这种方式构造和返回:

Gson gson = new Gson();
//findNewComments returns List<Comment> comments
return gson.toJson(service.findNewComments(id,lastId));

结果是:

[
    {
        "id": 43,
        "entryId": 19,
        "author": " m8w46",
        "body": "mw86",
        "date": "WED 9, 2011"
    },
    {
        "id": 44,
        "entryId": 19,
        "author": " n7w4",
        "body": "nw77w4",
        "date": "WED 9, 2011"
    }
]

但是这个数组必须命名为“comments”!

"comments": [
    {
        "id": 43,
        "entryId": 19,
        "author": " m8w46",
        "body": "mw86",
        "date": "WED 9, 2011"
    },
    {
        "id": 44,
        "entryId": 19,
        "author": " n7w4",
        "body": "nw77w4",
        "date": "WED 9, 2011"
    }
]

我该怎么做?

2 个答案:

答案 0 :(得分:3)

不确定这是否可以接受,但是:

public class CommentWrapper {
    List<Comments> comments;
    public CommentWrapper(List<Comment> comments) {
       this.comments = comments;
    }
}

然后你可以这样做:

return new Gson().toJson(new CommentWrapper(service.findNewComments(id,lastId)));

结果是:

{
    "comments": [
        ....your data here...
    ]
}

不确定对象语法是否可以接受。

答案 1 :(得分:0)

除了包装器对象之外,您还可以使用带有单个条目的简单java.util.Map,可能会少一些代码。