Я пытаюсь использовать Джексона в проекте Android через ObjectMapper.Использование Джексона для десериализации объектов JSON для POJO
Мой POJO выглядит следующим образом:
public class Product {
@JsonProperty("title")
String title;
@JsonProperty("vendor")
String vendor;
public void setTitle(String title){ this.title = title; }
public void setVendor(String vendor){ this.vendor = vendor; }
public String getTitle() { return title; }
public String getVendor() { return vendor; }
}
Я написал до юнит-тестов, чтобы увидеть, если я мог бы получить Джексон работает десериализации мои объекты JSON.
Context ctx;
public void setUp() throws Exception {
super.setUp();
ctx = getContext();
}
public void testConvertJSONToProduct() throws Exception {
ObjectMapper m = new ObjectMapper();
Product product = m.readValue(ctx.getAssets().open("foo.json"), Product.class);
assertEquals("Macbook", product.getTitle());
}
Мой фактический файл JSON содержит гораздо больше информации, чем то, что я установил в своем продукте, но я просто хочу, чтобы заставить его работать. Использование большего файла приводит к созданию продукта, но все его значения равны нулю. Я думал, что это может быть из-за все данные, которые там, так что я создал еще один файл (foo.json), который содержит следующее:
{"title" : "Macbook", "vendor" : "Apple"}
С, который я также получаю такую же проблему.
Какую версию Джексона вы используете? @JsonProperty разрешен только как аннотация поля после версии 1.0. –
jackson- (core/mapper) -asl-1.6.4 – csaunders