我在试图解析字符串到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使用下面的行
获取jsonObjectJSONObject 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);