从 JSONArray 获取数据



我正在尝试使用以下 kotlin 代码解析json中的数据:

val text = JSONObject(URL(request).readText())
val results = text.getJSONArray("results")
val name = results.getJSONObject(5).getString("name") // org.json.JSONException: Index 5 out of range [0..1) 

杰森

{
summary: {
queryType: "NEARBY",
queryTime: 13,
numResults: 2,
offset: 0,
totalResults: 2,
fuzzyLevel: 1,
geoBias: {
lat: -37.736343,
lon: 145.152114
}
},
results: [
{
type: "POI",
id: "AU/POI/p0/77255",
score: -0.38554,
dist: 385.5365152133808,
info: "search:ta:0323405846509-AU",
poi: {
name: "La Gourmet",

但是,我在第三行收到以下错误:

org.json.JSONException: Index 5 out of range [0..1)

我不确定为什么会出现此错误。我求助于通过索引搜索name.getJSONObject("poi")因为不需要String。这也令人担忧,因为数据可能会更改,因此我更愿意通过String查询JSON

知道吗?

results

是一个数组,您的代码尝试获取数组的第 5 个元素。您需要获取第一个元素,然后您可以按名称获取poi

val text = JSONObject(URL(request).readText())
val results = text.getJSONArray("results")
val result0 = results.getJSONObject(0)
val poi = result0.getJSONObject("poi")

最新更新