如何将jsonArray转换为List <String> Java?

时间:2019-07-25 15:57:43

标签: java json

我正在使用openjdk 11,并且正在调用返回内容类型json的api。我解析响应并将其转换成这样的字符串(需要这种方式,因为我期望响应采用不同的格式/结构):

    HttpEntity entity = response.getEntity();

    try
    {
        responseBody = EntityUtils.toString( entity );
    }
    catch ( Exception e )
    {
        LOG.error( "Unable to parse response", e );
        e.printStackTrace();
    }

响应是 org.apache.http.HttpResponse 类型的对象。

转换为字符串后,响应如下:

["abc","bcd","cde"]

现在,我正试图将其作为jsonObject或JsonArray

 JSONArray jsonArray = new JSONArray(responseBody);
 Arrays.asList(jsonArray).stream().forEach(e-> LOG.info("Connector: " + e));

虽然我的 jsonArray 看起来不错,但出现如下错误:

["abc","bcd","cde"] is not an array

问题是:如何将jsonArray转换为Java中的列表

1 个答案:

答案 0 :(得分:0)

我假设JSONArray来自Android。您可以这样做:

ArrayList<String> list = new ArrayList<String>();
JSONArray jsonArray = (JSONArray)jsonObject;
if (jsonArray != null) {
    int len = jsonArray.length();
    for (int i=0;i<len;i++){
        list.add(jsonArray.get(i).toString());
    }
}

来源:Convert Json Array to normal Java list