所以,我有一个学校项目,必须解析一个json数组并将数据放入列表视图中。 这是json http://demo4404797.mockable.io/speakers
当我运行该应用程序时,它仅显示5个元素,导致第五个抛出异常(“ org.json.JSONException:标题没有值”,我知道标题丢失。我只想知道解决这样),其余的数组元素也无法读取。
代码如下:
我在其他问题中读到我们可以使用“ ourobject.has(“ whatwewant”)“,但是我的老师说必须以其他方式完成。你能帮我吗?
答案 0 :(得分:1)
您使用的JSON中的第六项没有title
键。
由于不允许使用“ ourobject.has(“ whatwewant”)“。
只需将使用speaker.getString()
的代码替换为此:
String name = speaker.optString("Name", "Name NA");
String image= speaker.optString("Image", "Image NA");
opt
方法(有多个optString()
,optLong(), optBoolean()
...)将返回设置值(如果有),或者返回您输入的值如果密钥不可用,则作为“备用”。
答案 1 :(得分:-1)
由于您无法使用jsonObject.has("tag")
,因此您也可以拆分try-catch块。
String name;
try {
name = speaker.getString("name");
} catch (Exception e) {
name = ""; // Occurs when it can't find the tag.
}
对每个字段重复此操作。请在教室外故意使用它。