Android: java.lang.String不能转换为JSONArray



我在试图解析字符串到jsonArray时得到json异常。我使用loopj方法进行json解析。这是错误:

java.lang.String cannot be converted to JSONArray

这是我要解析的json:

[{"displayName":"Thiruvananthapuram","desc":"Partly cloudy","cloudCover":"5","dateTime":"Sunday October 02","humidity":"85","visibility":"10","tempCelcius":"29","iconClass":"PartlyCloudy-s"}]
我的代码是
    AsyncHttpClient client = new AsyncHttpClient();
   client.get("url", new AsyncHttpResponseHandler() {
    @Override
        public void onSuccess(int statusCode, Header[] headers, byte[] responseBody) {
        try {
        String jsonStr = new String(responseBody, "UTF-8");
        Log.e("Tag ", "on Result " + jsonStr);
        JSONArray jsonarray = new JSONArray(jsonStr);
                Log.e("Tag ", "jsonArr length " + jsonarray.length());
        }
        catch (UnsupportedEncodingException e)
        {
          e.printStackTrace();
        }
        catch (Exception e)
        {
          e.printStackTrace();
            }
        }
        @Override
        public void onFailure(int statusCode, Header[] headers, byte[] responseBody, Throwable error) {
        }
    })

首先,您必须使用jsonString使用下面的行

获取jsonObject
JSONObject jsnobject = new JSONObject(jsonStr);

然后你可以遍历jsonObject来获得jsonArray对象。

JSONArray jsonArray = jsnobject.getJSONArray("your json array key");

您必须将""替换为"然后转换为JsonArray:-

: -

 String jsonStr = new String(responseBody, "UTF-8");
jsonStr = jsonStr.replace("","");
// now convert it into JsonArray
  JSONArray jsonarray = new JSONArray(jsonStr);

最新更新