Android JAVA:将org.json.JSONArray转换为java.lang.String []

时间:2020-07-25 05:12:11

标签: java android arrays string

我正在使用一个Android应用,其中从服务器同步日期时,数据以json字符串的形式接收,该字符串首先使用
转换为JSONObject。 JSONObject jsonObject = new JSONObject("jsonStringFromServer")和这个jsonObject有一堆key:value集,其中value的形式为JSONArray,例如
{"id1":["stringa1","stringa2","stringa3"], "id2":["stringb1","stringb2","stringb3"], "id3":["stringc1","stringc2","stringc3"]}

我需要将此JSONArray转换为简单的String[],当我尝试使用简单的(String[]) jsonObject.get("id1")进行转换时,出现此错误 java.lang.ClassCastException:org.json .JSONArray无法转换为java.lang.String []

我环顾四周,但找不到类似于在Java中将ArrayList转换为String []的简单解决方案。他将不胜感激

2 个答案:

答案 0 :(得分:1)

JsonArray与Java的数组不同。您无法通过强制转换将JsonArray转换为常规Java数组。您可以做的是,通过遍历JsonArray将对象从JsonArray提取到常规Java数组中。

答案 1 :(得分:1)

您可以使用流从json数组中收集数据,并根据需要修改代码。下面的代码应该为您提供概述。

List<String> values = IntStream.range(0, jsonArray.length())
                .mapToObj(i -> array.getJSONObject(i).get("key").toString()).collect(Collectors.toList());