【问题标题】:How to convert a jsonArray into List<String> Java? [duplicate]如何将 jsonArray 转换为 List<String> Java? [复制]
【发布时间】:2019-12-03 23:20:17
【问题描述】:

我正在使用 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();
    }

其中 response 是 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中的List

【问题讨论】:

  • 你能显示这个API调用代码吗?

标签: java json


【解决方案1】:

我假设 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

【讨论】:

  • 您是否只是从其他 SO 问题中复制粘贴的答案,而不是将此问题评论为重复?
  • 我没有权限标记为重复,所以可以。如果您认为它是重复的,请将其标记为一个。
猜你喜欢
  • 1970-01-01
  • 2021-09-17
  • 1970-01-01
  • 2011-03-13
  • 2022-01-05
  • 1970-01-01
  • 2020-11-30
  • 1970-01-01
相关资源
最近更新 更多