【问题标题】:Parse JSON in it's order the way it is [duplicate]按其顺序解析 JSON [重复]
【发布时间】:2013-06-03 11:56:22
【问题描述】:

我正在解析一个 JSON 文件,其中包含工作日和这些工作日内的时间。问题是,每当我解析它们时,它都是一个巨大的混淆。 例如这是我的 json 文件:

{
"root1": {
"test": {
  "monday": {
    "08:00-12:20": {
      "value1": "value2",
      "value3": "value4"
    }
  },
  "tuesday": {
    "08:00-11:50": {
      "value1": "value2",
      "value3": "value4"
    }
  },
  "wednesday": {
    "08:00-11:50": {
      "value1": "value2",
      "value3": "value4"
    }
  },
  "friday": {
    "08:00-11:50": {
      "value1": "value2",
      "value3": "value4"
    }
  }
},
"test2": {
  "saturday": {
    "08:05-11:00": {
      "value1": "value2",
      "value3": "value4"
    }
  }
},
"test3": {
  "monday": {
    "12:45-15:10": {
      "value1": "value2",
      "value3": "value4"
    }
  },
  "tuesday": {
    "08:55-11:50": {
      "value1": "value2",
      "value3": "value4"
    },
    "15:30-17:55": {
      "value1": "value2",
      "value3": "value4"
    }
  },
  "wednesday": {
    "16:35-18:00": {
      "value1": "value2",
      "value3": "value4"
    }
  },
  "thursday": {
    "08:00-09:40": {
      "value1": "value2",
      "value3": "value4"
    },
    "10:00-12:25": {
      "value1": "value2",
      "value3": "value4"
    }
  },
  "friday": {
    "16:35-18:00": {
      "value1": "value2",
      "value3": "value4"
    }
  }
}
}
}

所以您会看到工作日的顺序是正确的。但如果我解析它们,它们就像这样:

  • 星期四
  • 星期五
  • 星期一
  • 星期三
  • 星期二

如何将它们解析为正确的顺序?

【问题讨论】:

  • 遵循 JSON 规范,objects are unordered
  • 好的,谢谢。但是我怎样才能将它们解析成正确的顺序呢?或者对它们进行排序?
  • 你可能不能,除非有一些不符合规范的实现。解析文件后,您必须自己订购它们。如果你想要有序的结果,你应该使用数组。

标签: java android json parsing


【解决方案1】:

您可以使用JsonReader 进行流读取和控制顺序。

【讨论】:

    【解决方案2】:

    您必须使用JSONArray 而不是JSONObject。事实上JSONArray 保留了顺序

    【讨论】:

    • 如果那不是一个数组呢?
    • @Enrichman JSONOBject 无序
    • 我明白这一点,但在 JSON 中,这是一个对象 {..},这是一个数组 [..]。我不认为你可以使用 JSONArray 反序列化 JSON 对象..
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-02
    • 1970-01-01
    • 2015-12-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多