java - 如何在不知道键/名称字符串的情况下解码 json?

标签 java android json

我收到以下格式的 json 字符串:

{"27":{"id":"27","uid":"4","title":"teamer.zapto.org","url":"www.google.jo","ip":"74.125.234.63","enabled":"1","services":{"Http 1":{"status":"1","ts":"1355058071"}},"fetch_interval":"60","ping_shift":"0"},

"30":{"id":"30","uid":"4","title":"google","url":"www.google.com","ip":"74.125.234.114","enabled":"1","services":{"Http 1":{"status":"1","ts":"1355058079"}},"fetch_interval":"60","ping_shift":"0"},

"31":{"id":"31","uid":"4","title":"facebook.com","url":"facebook.com","ip":"69.171.247.21","enabled":"1","services":{"Http 1":{"status":"1","ts":"1355058095"}},"fetch_interval":"60","ping_shift":"0"},

"32":{"id":"32","uid":"4","title":"ebir","url":"www.ebir.com","ip":"74.52.50.226","enabled":"1","services":{"Ftp":{"status":"1","ts":"1355058073"},"Http 1":{"status":"1","ts":"1355058073"}},"fetch_interval":"60","ping_shift":"0"},

"33":{"id":"33","uid":"4","title":"zapto","url":"teamer.zapto.org","ip":"200.35.150.6","enabled":"1","services":{"Http 1":{"status":"0","ts":"1355056146"}},"fetch_interval":"3600","ping_shift":"2"},

"35":{"id":"35","uid":"4","title":"vogella.com","url":"vogella.com","ip":"46.163.79.226","enabled":"1","services":{"Ftp":{"status":"1","ts":"1355058098"},"Http 1":{"status":"1","ts":"1355058098"}},"fetch_interval":"60","ping_shift":"0"},

"36":{"id":"36","uid":"4","title":"msn","url":"www.msn.com","ip":"131.253.13.140","enabled":"1","services":{"Http 1":{"status":"1","ts":"1355058103"}},"fetch_interval":"60","ping_shift":"0"},

"37":{"id":"37","uid":"4","title":"dubizzle.com","url":"www.dubizzle.com","ip":"94.236.93.152","enabled":"1","services":{"Http 1":{"status":"1","ts":"1355058068"}},"fetch_interval":"60","ping_shift":"0"},

"38":{"id":"38","uid":"4","title":"olx.jo","url":"olx.jo","ip":"204.74.99.100","enabled":"1","services":{"Http 1":{"status":"1","ts":"1355058108"}},"fetch_interval":"60","ping_shift":"0"},

"40":{"id":"40","uid":"4","title":"www.sukar.com","url":"www.sukar.com","ip":"72.52.8.195","enabled":"1","services":{"Ftp":{"status":"0","ts":"1355058092"},"Http 1":{"status":"1","ts":"1355058092"}},"fetch_interval":"60","ping_shift":"0"}}

如您所见,键是数字(27、30、31...)并且不连续。我怎样才能从这样的json中获取数据?我知道这一定是某种取决于长度的循环,但我不知道如何做到这一点。通常我会使用 jObject.getString("id"),但由于我不知道该字符串是什么,我该怎么办?

最佳答案

如果您有一个 JSONObject 作为根,您应该能够执行以下操作:

JSONObject root = new JSONObject(jsonString);
JSONArray names = root.names();
for(int i = 0; i < names.length(); i++) {
    String tag = names.getString(i);
    ...
}

标签将是您引用的数字标签。

关于java - 如何在不知道键/名称字符串的情况下解码 json?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13787775/

相关文章:

android - 当我将图像添加到我的应用程序时,AVD 将无法加载,并且我收到此消息

c - 使用 C 中的 YAJL 树检测 JSON 文件中的数组时出现问题

ios - NSJSONSerialization - 如何正确地将 JSON 转换为 NSArray?

java - 平方和差 - 我的方法有什么问题?

java - Apache Commons 压缩无法在 tar 中添加硬链接(hard link)

android - Android SDK 的位置尚未在 64 位 Windows 的首选项中设置

ios - 在 swift 中使用 JSON 接收到的 Int

java - 如何防止关闭子框架时关闭父框架(Java + iReport)?

java - 某些 JPanel 未显示在我的 CardLayout 面板中

安卓工作室 : Shared folder not working anymore