Java - возвращение JSON из сервлета с библиотекой Gson - PullRequest
0 голосов
/ 10 августа 2011

Я использую библиотеку 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": [
    {
        "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 ]

3 голосов
/ 10 августа 2011

Не уверен, что это приемлемо для вас, но:

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...
    ]
}

Неуверен, что синтаксис объекта приемлем для вас или нет.

0 голосов
/ 14 августа 2011

Помимо объекта-обертки, вы также можете использовать простой java.util.Map с одной записью, возможно, с меньшим количеством кода.

...