其他分享
首页 > 其他分享> > 如何使用Flexjson JSONDeserializer?

如何使用Flexjson JSONDeserializer?

作者:互联网

我有一个字符串:

 [{"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字符串中则需要考虑.

标签:java,json,deserialization,flexjson
来源: https://codeday.me/bug/20191007/1866727.html