Jettison JSON автоматически меняет тип данных - PullRequest
4 голосов
/ 22 февраля 2011

Я использую Resteasy 2.0.1.GA и, следовательно, Resteasy-jettison-provider-1.2.GA, и когда у меня есть свойство String, содержащее все числа (т. Е. String test = "1111";), ​​ответ JSON будет отобразить его как число, удалив двойные кавычки. Если я изменю его на String test = "oneoneoneoneone"; ответ JSON будет обрабатывать его как строку и сохранять в кавычках двойные кавычки. Есть ли в любом случае, чтобы поставщик Jettison строго интерпретировал данные в ответ на основании их типа, а не его значения? Я также попробовал приведенную ниже аннотацию JAXB, но все еще вижу ту же проблему.

@XmlElement(type=String.class)
private String text;

1 Ответ

1 голос
/ 22 февраля 2011

Я бы порекомендовал перейти на использование провайдера на основе Джексона - у Jettison достаточно причуд, чтобы сделать жизнь довольно сложной (и он не поддерживает использование аннотаций JAXB, даже если обработка должна проходить через интерфейсы XML).

Для Jettison может быть параметр, позволяющий отключить неявные преобразования (эта проблема упоминалась в списке пользователей Jettison);поэтому, если вы предпочитаете использовать его, это может быть другой маршрут.

...