2016-07-06 5 views
1

Мы используем API для связи между нашими услугами. Для привязки данных я использую следующий зависимости:Jackson Databinding

 <dependency> 
     <groupId>com.fasterxml.jackson.core</groupId> 
     <artifactId>jackson-core</artifactId> 
     <version>2.6.5</version> 
    </dependency> 

    <dependency> 
     <groupId>com.fasterxml.jackson.core</groupId> 
     <artifactId>jackson-databind</artifactId> 
     <version>2.6.0</version> 
    </dependency> 

    <dependency> 
     <groupId>com.fasterxml</groupId> 
     <artifactId>jackson-xml-databind</artifactId> 
     <version>0.6.2</version> 
    </dependency> 

Старого способ API предложил список мне:

country: [ 
    "NL", 
    "BE", 
    "ES", 
    "GB",   
], 

Обычно я связываю это с моим POJOs как следует: например,

@JsonProperty("country") 
private List<String> countries; 

который не вызывает никаких проблем.

Теперь наш API обновляется и данные показали, таким образом, например:

registeredIn: { 
    datatype: "SS", 
    item: { 
     NL: "NL", 
     BE: "BE", 
     ES: "ES", 
     GB: "GB" 
     } 
    }, 

мне нужна только эта часть информации объекта:

item: { 
     NL: "NL", 
     BE: "BE", 
     ES: "ES", 
     GB: "GB" 
     } 

Проблема сейчас список больше не является строковым списком, но он стал списком с объектами, в которых есть код страны. Есть ли простой способ получить строковые значения в виде списка? Делать это так, как я всегда делал с аннотациями?

ответ

1

Попробуйте использовать Map<String, String> вместо List<String>. Кажется немного избыточным использовать то же значение, что и ключ для Карты, но он должен сериализоваться так, как вы хотите.

+1

Работает, спасибо большое! – DefermentNL