在CN1中的JSON中提取JSON

时间:2016-05-06 07:17:10

标签: codenameone

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

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

&#34;结果&#34;包含2个值。首先是我可以使用密钥&#34; url&#34;:

获得的URL
String url = result.get("url");

第二,另一组采用JSON格式的数据,我使用了密钥&#34; eager&#34;。我试图将其提取到地图:

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

生成的Map的行为不像Map,所以我将整个eager Map传递给String,只是为了检查内容,我发现数据在括号内,如下所示:

[{item1=x, item2=x,.....itemN=x}]

问题: 如何将数据作为JSON对象获取?

3 个答案:

答案 0 :(得分:2)

您将结果字符串解析为List。如果您尝试获取数据&#34;会发生什么?像这样 ?

select COUNT(1) from TEST where contains(EMP_NAME, '("m.Sc" OR m.sc)') 

答案 1 :(得分:1)

您需要使用“root”键而不是“data”来获取列表。

答案 2 :(得分:1)

“结果”是一张地图。 “渴望”是地图列表。

你需要获得渴望地图的第一个位置才能获得包含数据的地图:

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);