我正在使用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中的列表?
答案 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());
}
}