Дублирование свойства '' для [простого типа, при десериализацииJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Дублирование свойства '' для [простого типа, при десериализации

Сообщение Anonymous »

В настоящее время я столкнулся с проблемой при использовании Jackson 2.4.4 с модулем xml.

XML, который я хочу десериализовать, выглядит следующим образом:

Код: Выделить всё

1000668-1

/url/or/something.jpg

test
36 mm / 19.5 cm


















И мой класс продуктов выглядит так:

Код: Выделить всё

@JsonInclude(JsonInclude.Include.NON_NULL)
@JsonIgnoreProperties(ignoreUnknown = true)
@JacksonXmlRootElement(localName = "product")
@JsonPropertyOrder({ "sku", "image", "brand", "sizeCM", "colors", "genders",
"occasions", "categories" })
public class Product {

@JsonProperty("sku")
@JacksonXmlText
private String sku;

@JsonProperty("image")
@JacksonXmlText
private String image;

@JsonProperty("brand")
@JacksonXmlText
private String brand;

@JsonProperty("sizeCM")
@JacksonXmlText
private String sizeCM;

@JsonProperty("colors")
@JacksonXmlProperty(localName = "colors")
private Colors colors;

@JsonProperty("genders")
@JacksonXmlProperty(localName = "genders")
private Genders genders;

@JsonProperty("occasions")
@JacksonXmlProperty(localName = "occasions")
private Occasions occasions;

@JsonProperty("categories")
@JacksonXmlProperty(localName = "categories")
private Categories categories;

// setter & getter ...
Следующим шагом было сопоставление его во время чтения из файла:

Код: Выделить всё

public static void main(String[] args) {
JacksonXmlModule module = new JacksonXmlModule();
XmlMapper xmlMapper = new XmlMapper(module);
xmlMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
product(xmlMapper);
}

public static void product(XmlMapper xmlMapper){
String s = "/tmp/product.xml";
Product test = null;
try {
test = xmlMapper.readValue(new File(s), Product.class);
} catch (Exception e) {
e.printStackTrace();
}
System.out.println(test.getSku());
}
Попробовав это, я столкнулся с этим исключением:

Код: Выделить всё

com.fasterxml.jackson.databind.JsonMappingException: Duplicate property '' for [simple type, class com.example.jackson.model.Product]
at com.fasterxml.jackson.databind.deser.DeserializerCache._createAndCache2(DeserializerCache.java:266)
at com.fasterxml.jackson.databind.deser.DeserializerCache._createAndCacheValueDeserializer(DeserializerCache.java:241)
at com.fasterxml.jackson.databind.deser.DeserializerCache.findValueDeserializer(DeserializerCache.java:142)
at com.fasterxml.jackson.databind.DeserializationContext.findRootValueDeserializer(DeserializationConexample.java:394)
at com.fasterxml.jackson.databind.ObjectMapper._findRootDeserializer(ObjectMapper.java:3169)
at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:3062)
at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:2115)
at com.example.jackson.main.TheMain.product(TheMain.java:32)
at com.example.jackson.main.TheMain.main(TheMain.java:23)
Далее — тот же метод — тот же ObjectMapper — другой pojo + xml работает нормально (даже список). Нужна любая помощь или подсказка, я действительно не знаю, что мне делать, потому что свойство Duplate исключения '' не так уж и хорошо, потому что '' действительно пусто!

Подробнее здесь: https://stackoverflow.com/questions/284 ... ialization
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»