Я использую класс JAXB
и JSONProvider
для генерации ответа клиенту в моих службах REST. И я нашел одну интересную вещь. У меня есть отображение:JSONProvider возвращает пустые объекты, такие как String
@XmlRootElement(name = "fooRoot")
@XmlAccessorType(XmlAccessType.FIELD)
public class WSBar {
private WSFooTO foos;
//...
}
@XmlRootElement(name = "foos")
@XmlAccessorType(XmlAccessType.FIELD)
public class WSFooTO {
private WSDateTO one;
private WSDateTO two;
private WSDateTO three;
private WSDateTO four;
//....
}
Когда я устанавливаю в ответ пустые объекты, я имею в виду: просто new WSDateTO()
и После того, как я Recive ответ так:
{"fooRoot":{
"foos":{
"one":"",
"two":"",
"three":"",
"four":""
}
}}
Почему это происходит ? Я ожидаю, что это должно быть: «один»: нулевой, «два»: нулевой
Также посмотрите на http://stackoverflow.com/questions/858598/jaxb-marshalling-with-null-fields вопрос, который также показывает способ перевода пустых объектов. – Atticus
Спасибо! Но я думаю, что это неправильно, когда объект преобразуется в String. Парсер JSON от клиента Android не работает. Потому что он ожидает Object, а не String. Не могли бы вы, пожалуйста, пообщаться, что мне делать в ситуации? – Andrew
Я не понимаю, что вы хотите сделать. Вы спросили: «Почему это происходит?» Я указал, почему это происходит. Так работает JAXB. Что бы вы хотели делать теперь? Пожалуйста, уточните свой вопрос. BTW 'String' также является« объектом », поэтому ваш клиент Android (о котором вы должны дать некоторую информацию, если это проблема) должен работать. – Atticus