尝试解析给定的json格式的android时,解析给定的值时出现错误

时间:2019-05-23 09:56:33

标签: java android json parsing

我有以下类型的json结构,它来自网址。

// Create variable
var arrSportsList:[[String:String]] = []

    // viewDidLoad code
    arrSportsList = [
        ["title":"Cricket"],
        ["title":"Soccer"],
        ["title":"American Football"],
        ["title":"Ice Hockey"],
        ["title":"Tennis"],
        ["title":"Baseball"],
        ["title":"Basketball"],
        ]

我能够解析除“ bus”之外的所有内容,因为该总线在id 2中不可用。因此,由于找不到“ bus”值,因此出现了错误。 JSONException。

让我知道如何解决这个问题?下面是我尝试过的。

 [{
    "id": 1,
    "name": "TV",
    "fromcenter": {
        "car": "60 Mins",
        "bus": "20 Mins"
    },
    "location": {
        "latitude": -33.7181,
        "longitude": 10.3160
    }
}, {
    "id": 2,
    "name": "Fridge",
    "fromcenter": {
        "car": "30 Mins"
    },
    "location": {
        "latitude": -33.8433,
        "longitude": 11.2411
    }
}, {
    "id": 3,
    "name": "Mixie",
    "fromcenter": {
        "car": "20 Mins",
        "bus": "40 Mins"
    },
    "location": {
        "latitude": -3.8910,
        "longitude": 11.27777
    }
}]

2 个答案:

答案 0 :(得分:3)

您可以在读取对象之前询问该对象是否具有该属性

if (object.has("bus")) {
    bus = object.getString("bus");
}

答案 1 :(得分:0)

直接输入一个单词。

使用 optString 代替getString

optString消除了此问题。公交车不在第二项中。

所以使用

String bus= object.optString("bus");