Конвертировать объект в JSON для отображения в Java - PullRequest
0 голосов
/ 28 мая 2019

Я пытался преобразовать объект в JSON в Java с помощью Gson, но многие вещи не совпадают. Раньше объект был int, теперь он превращается в объект. Это часть JSON (для конвертации мне нужен только урон):

Я перепробовал большинство руководств в Интернете, но все равно не помог.

[
  {
    "username": "lol",
    "value": [
      "one","two"
    ],
    "Power": [
      {
        "type": "Damage",
        "damage": {"first":2, "second":0,"third":0}
}]}]

Ответы [ 2 ]

0 голосов
/ 28 мая 2019

Чтобы преобразовать ваш текст в Hashmap, используйте это.

String yourJson = "insert your JSON here";
Type type = new TypeToken<List<Map<String, Object>>>() {}.getType();
List<Map<String, Object>> parsedJson = new Gson().fromJson(yourJson, type);

теперь вы можете получить к нему доступ через:

Map<String, Object> user = (Map<String, Object>) parsedJson.get(0);
List<Map<String, Object>> userPowers = (List<Map<String, Object>>) user.get("Power");
Map<String, Object> usersFirstPower = userPowers.get(0);
Map<String, Object> firstPowerDamage = (Map<String, Object>) usersFirstPower.get("damage");
System.out.println(firstPowerDamage.get("first").toString());

Редактировать

Это еще один способ использовать Gson:

String yourJson = "...";
JsonArray map = (JsonArray) new JsonParser().parse(yourJson);
System.out.println(map.get(0).getAsJsonObject().get("Power").getAsJsonArray().get(0).getAsJsonObject().get("damage"));
0 голосов
/ 28 мая 2019

JSON, который вы пытаетесь проанализировать, не является допустимой структурой Json.Используйте это https://jsonformatter.curiousconcept.com/ для проверки структуры JSON и попробуйте выполнить синтаксический анализ.

...