Я пишу успокаивающее обслуживание, используя Джерси и Джексона для де-сериализации. Я использую Spring для инъекций зависимости, я также использую com.sun.jersey.spi.spring.container.servlet.SpringServlet
(не используя mvc). Я использую RestyGWT на стороне клиента. Я возвращаю массив объектов из моей службы, мой клиент жалуется, что это не действительный документ JSON. Вот что служба возвращается:Spring-Jersey-Jackson-JSON: Элемент массива, обернутый индексом
{
"0": {
"type": "AQUISITION_DT",
"value": "2013-2-1",
"stats": {
"total": 91,
"used": 4
}
},
"1": {
"type": "AQUISITION_DT",
"value": "2013-1-1",
"stats": {
"total": 24,
"used": 13
}
}
}
Я не уверен, но я думаю, что проблема в том, что каждый элемент обернут по его индексу. Есть ли способ, которым я могу посоветовать Джерси или Джексону развернуть элементы массива? Пожалуйста, дайте мне знать, если мне нужно предоставить дополнительную информацию.
В коде я посылаю результат обратно в JSONWithPadding объект следующим образом: return new JSONWithPadding(array, callback);
Кстати, я уже настроен Джерси в моем web.xml
использовать POJO Mapping:
<init-param>
<param-name>com.sun.jersey.api.json.POJOMappingFeature</param-name>
<param-value>true</param-value>
</init-param>
UPDATE Я проверил с помощью завитка с терминала, и возвращаемая строка выглядит правильно (я удалил корпус обратного вызова):
{
{
"type": "AQUISITION_DT",
"value": "2013-2-1",
"stats": {
"total": 91,
"used": 4
}
},
{
"type": "AQUISITION_DT",
"value": "2013-1-1",
"stats": {
"total": 24,
"used": 13
}
}
}
Строка, которую я изначально опубликовал, сообщает restyGWT. Извините за запутанный пост, я не уверен, почему restyGwt жалуется ...
Спасибо!
Как вы возвращаете код JSON? – Willy
1) Как сказал Вилли ниже, у вас должны быть квадратные скобки. 2) вы должны вставить свой код на стороне клиента, если хотите, чтобы мы вам помогли. В вашем интерфейсе restService вы получаете свой массив, каков тип вашего обратного вызова? –