我有一个字符串:
[{"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();
}
Deserialization section of the docs中的“不使用转盘进行反序列化”一节进一步介绍了其他情况,以考虑JSON字符串中是否不包含类型信息。