java - 如何通过 gson 将 json 反序列化为嵌套的自定义地图?
问题描述
我有以下 json
{
"id": "1111",
"match": {
"username1": {
"id": "1234",
"name": "alex"
},
"username2": {
"id": "5678",
"name": "munch"
}
}
}
为了反序列化它,我有以下数据模型类..
class json{
String id;
Match match;
}
class Match {
private Map<String,Profile> profiles
}
class Profile{
private String id;
private String name;
}
当我使用 gson 时,我没有收到任何反序列化错误,但
profiles
变量为 null。这就是我反序列化的方式
var json = gson.fromJson(data,json.class)
在match
对象内部可以有动态数量的用户名,而不仅仅是两个。为什么我将profile
对象设为 null 以及如何正确填充它?
更改 json 是这里的最后手段。我可以进行任何其他必要的更改。
解决方案
问题是你的模型。您不需要Match
,因为profiles
您的 JSON 中并不真正存在。你只是json
(这个有小的变化)和Profile
:
class json{
String id;
Map<String,Profile> match;
}
这将起作用。
推荐阅读
- c++ - 如何将字符串附加到 argv
- php - PHP获取最后一条数据的id
- common-lisp - 如何查找加载的 ASDF 系统的符号(和源文件)
- r - 从R中数据框中的列中删除一些文本字符串和字符
- python-3.x - import boto3 ImportError: No module named boto3 docker container
- gnuplot - Gnuplot 中的孵化(图案填充)
- python - ImportError:使用 OpenCV 运行 Docker 容器时出现 libGL.so.1
- python - 熊猫识别两列具有相同字符串的行
- java - “应用程序未响应”意图广播 { act=android.intent.action.SCREEN_OFF flg=0x50000010 }
- python - 在 Python3 中处理浮点数