Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to use Flexjson JSONDeserializer?

I have a string:

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

How can I use Flexjson's JSONDeserializer to obtain all product_ids from the above string?

I have a class called productinformation which has fields like product_id and name.

like image 914
saurabh ranu Avatar asked Feb 06 '26 15:02

saurabh ranu


1 Answers

You could use the JSONDeserializer.use() methods to tell it how to deserialize the array and each object in the array, in this case of class ProductInformation . The product_id attribute does not match up with the standard naming that flexjson expects, so your properties on the object will need to have an underscore in them.

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();
}

The section on "Deserialization Without the Training Wheels" in Deserialization section of the docs goes into additional details on the other cases to consider if the type information is not included in the JSON string.

like image 103
Rob Tanzola Avatar answered Feb 09 '26 07:02

Rob Tanzola



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!