2013-08-01 2 views
2

Я использую это для других, работающих между Java-клиентами и веб-службами .Net MVC4 и с использованием RobosSpice и FasterXML Jackson. Я не смог найти хорошую информацию о stackoverflow о том, как настроить класс JSON POJO для правильного сопоставления объектов для объекта результата POST. Для операций POST РЕЗУЛЬТАТ JSON возвращается со структурой из веб-сервисов .Net:FasterXML Jackson ObjectMapper для .Net MVC4 JSON POST Объекты типа результата

{ "Classname": { "attribute_one": 1, "" attribute_two ": 1," ....}}

Я не мог понять, как получить FastXml Jackson ObjectMapper readValue для синтаксического анализа. Я получил пустой объект результата после разбора всех свойств, заданных как null или значения по умолчанию ..., или недопустимое имя свойства для имени класса, если я отключил JsonIgnoreProperties.

Следующее определение объекта POJO, наконец, сработало для меня. Он имеет внешний класс, который соответствует ClassName в Result, а затем внутренний статический класс для отображения отдельного результата объекта в Java Класс объект:

общественного класс ClassNameOuter {

@JsonProperty("ClassName") 
public ClassName _ClassName; 
public ClassName get_ClassName() { 
    return _ClassName; 
} 
public void set_ClassName(ClassName _ClassName) { 
    this._ClassName = _ClassName; 
} 
@JsonIgnoreProperties(ignoreUnknown=true) 
public static class ClassName { 

    @JsonProperty("attribute_one") 
    public long attribute_one; 
    @JsonProperty("attribute_two") 
    public long attribute_two; 

Для специалистов там на Джексона и Робопиче .... пожалуйста, поделитесь, если есть лучший способ.

ответ

1

RoboSpice еще не поддерживает синтаксический анализ XML с использованием Jackson. Он предоставляет модуль для синтаксического анализа XML с помощью SimpleXMLSerializer, но не для джексона.

Можете ли вы указать, какие классы Джексона вы использовали, я скоро добавлю модуль в RS.

+0

Не уверен, если я понимаю ... Я использовал RoboSpice с запросом Spring Spice ... это использует парсер Джексона, правильно? с использованием кода: импорт com.octo.android.robospice.request.springandroid.SpringAndroidSpiceRequest; .... return getRestTemplate(). PostForObject (theURL, mObjectToPost.get_InnerObject(), OuterObject.class); – lepert

+0

Конечно, я знаю классы РС. Но можете ли вы дать ссылку на использование синтаксического анализатора jsonson xml? – Snicolas

+0

Использование парсера Jackson является частью настройки RoboSpice ... мы настроены для Jackson2SpringAndroidSpiceService.class на нашем построении SpiceManager. В объектах POJO мы используем аннотации, используя классы com.fasterxml.jackson.annotation. *. В настоящее время мы находимся на уровне Jackson-core-2.2.3 ... что быстрее Jackson 2.2.3 набор фляг. Джексон-аннотации, Jackson-core и Jackson-databind. Мы не используем Jackson напрямую ... он используется RoboSpice на основе нашей конфигурации SpiceManager. Не уверен, что это вам поможет? – lepert

Смежные вопросы