【发布时间】:2016-11-16 12:23:51
【问题描述】:
为了解析 json,我使用 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 获取 null 对象时,它给我的 org.json.JSONObject$1 无法在 try catch 中转换为 JSONObject。
请帮助我如何解决这个问题......感谢阅读......
【问题讨论】:
-
你为什么这么努力地解析代码,而不是使用像 GSON is Jackson 这样的 json 解析库?
-
你的 json 结构在说别的东西,而你的代码在做别的事情,看起来很可疑
-
为什么 api 的家伙给你一个空???你可以询问 key 和 myval 是否为空,他们可以给出空字符串,例如 { "key": 1, "myval": "" } 那么你的问题就解决了
-
你好 Manish - 我会尽快来找你的 :)
标签: android json android-json