我有一个字符串:
[{"product_id":"2","name":'stack"'},{"product_id":"2","name":"overflow"}]"
我如何使用Flexjson的JSONDeserializer从上述字符串中获得所有product_id
?
我有一个叫做productinformation
的类,它有像product_id
和name
这样的字段。
您可以使用JSONDeserializer.use()
方法来告诉它如何反序列化数组和数组中的每个对象,在本例中是ProductInformation
类。product_id属性与flexjson期望的标准命名不匹配,所以你在对象上的属性需要在它们里面有一个下划线。
String products= "[{"product_id": "123","name":"stack"},{"product_id": "456","name":"overflow"}]";
List<ProductInformation> productInfoList = new JSONDeserializer<List<ProductInformation> >()
.use(null, ArrayList.class)
.use("values",ProductInformation.class)
.deserialize(products);
for(ProductInformation productInformation : productInfoList){
System.out.println(productInformation.getProduct_id();
}
文档的反序列化部分中的"没有辅助轮的反序列化"一节详细介绍了JSON字符串中不包含类型信息时需要考虑的其他情况。