對於解析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