我有一个字符串:

 [{"product_id":"2","name":'stack"'},{"product_id":"2","name":"overflow"}]"


如何使用Flexjson的JSONDeserializer从上述字符串中获取所有product_id

我有一个名为productinformation的类,其中包含类似product_idname的字段。

最佳答案

您可以使用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字符串中是否不包含类型信息。

07-24 09:45