【问题标题】:Get data from JSONArray从 JSONArray 获取数据
【发布时间】:2019-10-20 01:37:02
【问题描述】:

我正在尝试使用以下 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) 

json

{
    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",

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

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

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

有什么想法吗?

【问题讨论】:

    标签: android json kotlin


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-03-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多