我正在使用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"
}
]
我该怎么做?
答案 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
,可能会少一些代码。