如何使用flexjson.deserializer将jsonarray反序列化为java中的List ?

在客户端,我构建了一个像这样的JSOnARRAY:

{"filterEntries":[{"dataName":"mainContact","filterValue":"BILLGATES"}]}. 

在服务器端(java),我可以使用以下方法退出值:

 jfilter = JSONValue.parse(jsonFilterStr); //jsonFilterStr={"filterEntries":[{"dataName":"mainContact","filterValue":"BILLGATES"}]}. JSONArray jFilterEntries = (JSONArray) jfilter.get("filterEntries"); for (int i=0;i<jFilterEntries.size();i++){ JSONObject jFilterEntry = (JSONObject) jFilterEntries.get(i); String dataName = (String) jFilterEntry.get("dataName"); String filterValue = (String) jFilterEntry.get("filterValue"); } 

但现有的应用程序正在使用flex.json.deserializer,我无法使用flex.json.deserializer实现相同的function。 我该怎么办? 我希望做这样的事情:

 JSONDeserializer jsonDeserializer = new JSONDeserializer(); jsonDeserializer.use(null, List.class); List<Map> lMap= (List<Map>)jsonDeserializer.deserialize(params); 

记住包装数组的顶级对象。 你也必须处理它。 你必须告诉它期望列表中的Map。 为此,您必须使用路径表达式“values”指定列表中包含的类型。

 Map>> result = new JSONDeserializer>>>() .use("values",List.class) .use("values.values", Map.class) .deserialize( json); List> filterEntries = result.get("filterEntries"); 

更新 :添加新关键字,并使右侧的generics类型与左侧匹配。