如何使用Flexjson JSONDeserializer?

sau*_*anu 1 java json deserialization flexjson

我有一个字符串:

 [{"product_id":"2","name":'stack"'},{"product_id":"2","name":"overflow"}]"
Run Code Online (Sandbox Code Playgroud)

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

我有一个叫做和的productinformation字段的类.product_idname

Rob*_*ola 10

您可以使用这些JSONDeserializer.use()方法告诉它如何反序列化数组和数组中的每个对象,在本例中为class 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();
}
Run Code Online (Sandbox Code Playgroud)

如果类型信息未包含在JSON字符串中,则有关其他情况的其他详细信息,请参阅文档的反序列化部分中的 "没有训练轮的反序列化"部分.

  • "values"是flexjson用于引用集合成员的特定名称,在本例中是列表.这基本上是说"这个列表的每个成员都应该反序列化为`ProductInformation`对象. (3认同)