Вы можете использовать методы 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.