我正在尝试通过ObjectMapper在Android项目中使用Jackson。
我的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; }
}
我写了一个单元测试,以查看是否可以使Jackson工作以反序列化我的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文件包含比我在Product中设置的更多信息,但我只想让它工作。 使用更大的文件会导致创建Product,但所有值都设置为null。 我认为这可能是因为其中的所有数据,因此我创建了另一个文件(foo.json),其中包含以下内容:
{"title" : "Macbook", "vendor" : "Apple"}
我也遇到了同样的问题。