Codenameone 在CN1中的JSON中提取JSON

Codenameone 在CN1中的JSON中提取JSON,codenameone,Codenameone,我的应用程序从API接收JSON响应。当它到达时,应用程序使用JSONParser类将结果作为映射: JSONParser jp = new JSONParser(); Map <String, Object> result = jp.parseJSON(new InputStreamReader(input, "UTF-8")); 第二,另一组JSON格式的数据,我使用键“eager”获取。我试图将其提取到地图: java.util.List<Map<String,

我的应用程序从API接收JSON响应。当它到达时,应用程序使用JSONParser类将结果作为映射:

JSONParser jp = new JSONParser();
Map <String, Object> result = jp.parseJSON(new InputStreamReader(input, "UTF-8"));
第二,另一组JSON格式的数据,我使用键“eager”获取。我试图将其提取到地图:

java.util.List<Map<String, Object>> eager =  (java.util.List<Map<String, Object>>) result.get("eager");
问题:
如何将数据作为JSON对象获取?

将结果字符串解析为列表。如果你试图获得这样的“数据”,会发生什么

java.util.List<Map<String, Object>> newResult =  (java.util.List<Map<String, Object>>) result.get(0);
java.util.List newResult=(java.util.List)result.get(0);
您需要使用键“root”而不是“data”来获取列表。

结果是一个映射。 “渴望”是一个地图列表

为了获得包含以下数据的地图,您需要获取渴望地图的第一个位置:

Map <String, Object> result = jp.parseJSON(new InputStreamReader(input, "UTF-8"));

java.util.List<Map<String, Object>> eager =  (java.util.List<Map<String, Object>>) result.get("eager");

Map<String, Object> eagerMap =  (Map<String, Object>) eager.get(0);
Map result=jp.parseJSON(新的InputStreamReader(输入,“UTF-8”);
java.util.List eager=(java.util.List)result.get(“eager”);
Map-eagerMap=(Map)eager.get(0);

钥匙的真名是“渴望”。我编辑了我的问题。那把钥匙确实给了我数据,但在括号里。我将尝试将“root”应用于“eager”映射,并将“toArray()”应用于eager映射。现在我可以得到该数组的位置0,我得到的数据是{}而不是[{}]。我怎样才能把它转换成地图或哈希表?不,它不起作用。我把我的问题编辑得更具体了,我明白了。你的回答非常接近。我不得不再重复一次。谢谢您需要在解析后的行上放置一个断点,并使用调试器变量检查器工具来理解数据结构。
java.util.List<Map<String, Object>> newResult =  (java.util.List<Map<String, Object>>) result.get(0);
Map <String, Object> result = jp.parseJSON(new InputStreamReader(input, "UTF-8"));

java.util.List<Map<String, Object>> eager =  (java.util.List<Map<String, Object>>) result.get("eager");

Map<String, Object> eagerMap =  (Map<String, Object>) eager.get(0);