json里数组的实体类key是动态的,后台如何反序列化成实体类?

l932 2017-05-05 01:04:04
一般JSON是这样的,User
{
"id": "1",
"name": "张三",
"age": 45
}
我们做一个User.java实体类
private String id;
private String name;
private Integer age;
这样用Gson或其他就能把json转成实体类User
但是现在有这样一个json
{
"user1":{
"id": "1",
"name": "张三",
"age": 45
},
"user2":{
"id": "2",
"name": "李四",
"age": 25
}
}
里面的Key分别是user1user2
这样应该怎么反序列化?
...全文
480 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
人鱼传说 2017-05-07
  • 打赏
  • 举报
回复
只要前端提交的是规范的JSON格式,怎样的格式,你反序例化后,通过 foreach应该都能读出来哟
l932 2017-05-05
  • 打赏
  • 举报
回复
引用 4 楼 showbo 的回复:
用字典类,如hashtable之类的
嗯,最后用了hashmap<动态变化的key,实体类>
  • 打赏
  • 举报
回复
用字典类,如hashtable之类的
cn00439805 2017-05-05
  • 打赏
  • 举报
回复
提交前,让前端把插件数据转换成你想要的数据结构再提交呗,这东西前端5分钟就写完了
l932 2017-05-05
  • 打赏
  • 举报
回复
引用 1 楼 cn00439805 的回复:
你让前端提交这样的数据 [{ "id": "1", "user":"user1" "name": "张三", "age": 45 }, { "id": "2", "user":"user2" "name": "李四", "age": 25 }]
我无比想这样啊,,,,,可是这个JSON是我们这个项目在网上找的一个插件生成的,人家插件就只认这种格式,,,,, 我想的招是这样: Map<String, Node> nodes = new HashMap<String, Node>(); String jsonStr = "{'user1': {'id': '1','name': '张三','age': 45},'user2': {'id': '2','name': '李四','age': 25}}"; JSONObject jsonArr = JSON.parseObject(jsonStr); Set<String> ks = jsonArr.keySet(); for (String string : ks) { System.out.println(string); nodes.put(string, JSON.parseObject(jsonArr.get(string).toString(), Node.class)); } System.out.println(nodes.toString()); 最终结果是 {user2=Node [id=2, name=李四, age=25], user1=Node [id=1, name=张三, age=45]} 也行了
cn00439805 2017-05-05
  • 打赏
  • 举报
回复
你让前端提交这样的数据 [{ "id": "1", "user":"user1" "name": "张三", "age": 45 }, { "id": "2", "user":"user2" "name": "李四", "age": 25 }]

87,993

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧