曾经尝试使用Gson将JSON中的对象转换为Java,但很多事情都不尽人意。 在对象是int类型之前,现在将其转换为对象。 这是JSON的一部分(我只需要损坏就可以转换):
我已经在线尝试了大多数指南,但仍然没有帮助。
[
{
"username": "lol",
"value": [
"one","two"
],
"Power": [
{
"type": "Damage",
"damage": {"first":2, "second":0,"third":0}
}]}]
答案 0 :(得分:0)
您尝试解析的JSON似乎不是有效的Json结构。使用此https://jsonformatter.curiousconcept.com/来验证JSON结构并尝试解析。
答案 1 :(得分:0)
要将您的文本转换为哈希图,请使用它。
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"));