3
我想通過ObjectMapper在Android項目中使用傑克遜。使用傑克遜反序列化JSON對象到POJOs
我的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"}
隨着這我也得到了同樣的問題。
您正在使用哪個版本的Jackson? @JsonProperty只允許在版本1.0之後作爲字段註釋。 – 2011-01-26 18:11:37
jackson-(核心/映射器)-asl-1.6.4 – csaunders 2011-01-26 18:33:12