-1

我正在使用 D3 DPS 计算器,但我遇到了 JSON-Object 的问题。我得到一个像这样的 JSON 对象:

{"Sockets":{"min":1,"max":1},
"Dexterity_Item":{"min":165,"max":165},
"Durability_Cur":{"min":581,"max":581},
"Durability_Max":{"min":715,"max":715},
"Attacks_Per_Second_Item_Percent":{"min":0.1,"max":0.1},
"Damage_Weapon_Delta#Arcane":{"min":315,"max":315},
"Damage_Weapon_Min#Arcane":{"min":274,"max":274},
"Damage_Weapon_Delta#Physical":{"min":161,"max":161},
"Damage_Weapon_Min#Physical":{"min":190,"max":190},
"Attacks_Per_Second_Item":{"min":1.2000000476837158,"max":1.2000000476837158},
"Steal_Health_Percent":{"min":0.03,"max":0.03}}

我怎样才能拆分所有这些值?我不能按名字来做,因为它是“随机的”。我想要一个包含统计数据和值的列表。

4

4 回答 4

0

只是一个使用 JSON api 的例子

JSON文件

{
    "chapitres":{

        "chapitre":[
            {   
                "id": "1",
                "name": "La plateforme Android 1",
                "desc": "Description chapitre 1"
            },

            {   
                "id": "2",
                "name": "La plateforme Android 2",
                "desc": "Description chapitre 2"
            },

            {   
                "id": "3",
                "name": "La plateforme Android 3",
                "desc": "Description chapitre 3"
            },
            {   
                "id": "4",
                "name": "La plateforme Android 4",
                "desc": "Description chapitre 4"
            }
        ]
    }
}

JAVA代码

JSONObject jsonObject = new JSONObject(json);

JSONObject chapitresJsonObject = jsonObject.getJSONObject("chapitres");

JSONArray chapitreJsonArray = chapitresJsonObject.getJSONArray("chapitre");

    for (int i = 0; i < chapitreJsonArray.length(); i++) {

        JSONObject ChapJsonObject = chapitreJsonArray.getJSONObject(i);

        String id = ChapJsonObject.getString("id");
        String name = ChapJsonObject.getString("name");
        String desc = ChapJsonObject.getString("desc");
         }

就这样

于 2013-05-12T16:10:28.277 回答
0

可能有帮助的一件事是在这样的在线JSON 查看器中查看您的 JSON 。您可以点击格式,并从中获得如下所示的内容:

{
  "Sockets": {
    "min": 1,
    "max": 1
  },
  "Dexterity_Item": {
    "min": 165,
    "max": 165
  },
  "Durability_Cur": {
    "min": 581,
    "max": 581
  },
  "Durability_Max": {
    "min": 715,
    "max": 715
  },
  "Attacks_Per_Second_Item_Percent": {
    "min": 0.1,
    "max": 0.1
  },
  "Damage_Weapon_Delta#Arcane": {
    "min": 315,
    "max": 315
  },
  "Damage_Weapon_Min#Arcane": {
    "min": 274,
    "max": 274
  },
  "Damage_Weapon_Delta#Physical": {
    "min": 161,
    "max": 161
  },
  "Damage_Weapon_Min#Physical": {
    "min": 190,
    "max": 190
  },
  "Attacks_Per_Second_Item": {
    "min": 1.2000000476837158,
    "max": 1.2000000476837158
  },
  "Steal_Health_Percent": {
    "min": 0.03,
    "max": 0.03
  }
}

我也很喜欢这个关于Android JSON 解析的描述

于 2013-05-12T15:59:12.467 回答
0

如果您在android平台上开发,您可以轻松使用json api :http : //developer.android.com/reference/org/json/JSONObject.html

您只需实例化一个 JSONObject:

JSONObject jsonObject = new JSONObject(myStringData)

并使用您的每个密钥获取您的数据json String (min, max,...)

像这样:

int min = jsonObject.getInt("min");

我希望这将有所帮助。

于 2013-05-12T16:05:12.897 回答
0

如果您不知道统计信息的名称,可以使用JSONObject.names().

JSONObject json = new JSONObject(...);

JSONArray stats = json.names();
for (int i = 0; i < stats.length(); i++) {
    String name = stats.getString(i);
    JSONObject stat = json.getJSONObject(name);

    stat.getInt("min");
    stat.getInt("max");
}
于 2013-05-12T16:57:04.567 回答