将JSON服务器响应解析为JSON数组

Sco*_*ott 1 java arrays json

我正在使用Java来解析来自服务器的JSON响应.我的最终目标是将结果中的数据放入数组中.目前我正在使用它来尝试获得结果:

JSONArray jArray = myResponse.getJSONArray("results");
Run Code Online (Sandbox Code Playgroud)

此代码失败,因为它正在查找对象数组,而不是字符串数组:

org.json.JSONException: Value blah at 0 of type java.lang.String cannot be converted to JSONObject
Run Code Online (Sandbox Code Playgroud)

这是我服务器的JSON响应:

{
  status: "OK",
  results: [
    "blah",
    "bleh",
    "blah"
  ]
}
Run Code Online (Sandbox Code Playgroud)

有没有一种简单的方法可以将"结果"值转换为数组?或者我应该编写自己的解析器.

谢谢

----------更新----------

看起来我的问题实际上发生在其他地方,而不是JSON属性"results"被转换为JSONArray的地方.

抱歉,感谢您的回答,他们帮助我意识到我在找错了地方.

Bog*_*rac 5

这应该是它.所以你可能试图在结果aarray中获取JSONObject而不是String.

JSONObject responseObject = new JSONObject(responseString);
JSONArray resultsArray = responseObject.getJSONArray("results");
for (int i=0; i<resultsArray.length(); i++)
    String resultString = resultsArray.getString(i);
Run Code Online (Sandbox Code Playgroud)