对于解析JSON不能被转换为JSONObject的错误我使用JSONArray和JSONObject的:
protected void parseJson()
{
JSONObject object=null;
try {
object=new JSONObject(json);
myArray=object.getJSONArray(MY_ARRAY);
Log.e("Array Length",""+myArray.length());
key_id=new String[myArray.length()];
key_name=new String[myArray.length()];
for (int i=0;i<=myArray.length();i++)
{
JSONObject fetchObject=myArray.getJSONObject(i);
key_id[i] = fetchObject.getString(KEY_ID);
key_name[i] = fetchObject.getString(KEY_NAME);
}
} catch (JSONException e) {
e.printStackTrace();
}
}
JSON数据:
{
"data": [{
"key": 1,
"myval": "hello"
}, {
"key": 1,
"myval": "hello"
}, {
"key": 1,
"myval": "hello"
}, null, {
"key": 1,
"myval": "hello"
}, {
"key": 1,
"myval": "hello"
}]
}
我的问题是,当fetchObject获取它给我的空对象org.json.JSONObject$1
无法在try catch中转换为JSONObject。 请帮助我,我怎么能解决这个问题.....感谢您阅读....
为什么你在解析代码时如此努力而不是像GSON那样使用json解析库是杰克逊? –
你的json结构在说别的,你的代码正在做别的事情,这看起来很可疑 –
为什么api的人会给你发一个空?你可以问,如果键设为myVal是空白的,他们可以给空字符串,如{ \t \t“关键”:1, \t \t“设为myVal”:“” \t}那么你的问题将得到解决 – AmeeJoshi