2014-02-03 2 views
0

Я использую Jackson для десериализации xml. У моего xml есть значение, которое может быть объектом или строкой. Вот мой xmlКак разобрать значение, которое может быть объектом или строкой - Java - Jackson

<FormFieldHidden name="RequestTime"> 
    <DefaultValue> 
    <DataSourceName>DataSourceCurrentTime</DataSourceName> 
    </DefaultValue> 
</FormFieldHidden> 
<FormFieldHidden name="TradPtnrID"> 
    <DefaultValue>043355932</DefaultValue> 
</FormFieldHidden> 

Вот мой Java:

@JsonIgnoreProperties(ignoreUnknown = true) 
public class Forms { 

    public Form form; 

    public Forms() { 
     form = new Form(); 
    } 

    public static class Form extends Asset { 
     public String version; 
     public String description; 

    public List<Section> sections; 

    } 

    public static class Section { 
     public String label; 
     public int totalColumns; 
    public List<FormFieldHidden> formFields; 
    } 

    public static class FormFieldHidden { 
     public String defaultValue; 
    } 
} 

Как я могу вытащить defaultValue ли это объект или строка?

+0

Какой объекта? и какие поля в нем? Я провел несколько сеансов JSON с Джексоном. Похоже, вам нужно создать свой собственный класс 'deserializer' для этого поля' defaultValue', и, возможно, он должен быть «public Object defaultValue». – vilpe89

ответ

0

я нету работать с Джексоном, но возможно instanceof поможет, в псевдокоде

if (value instanceof Class){Class c=value;} 
else{String s=value;} 
Смежные вопросы