用Map接受json, map.get()之后怎么解析成对象

比如说我一个类, 里面有一个Hobby类的list
public class User {

private name;
private List<Hobby> hobbyList;
// 省略

}
然后我收过来的json是这样的
{

“data”: {
     “name”: abc,
     hobbyList: [......]
 },
 “otherparam”: .....

}
然后我@Requestbody Map map
本来我先 map.get(“data”) 然后直接转成User对象用报错
现在我是先beantostring 然后再 parse 成 User 对象,但总感觉不舒服
问一下应该怎么弄么,谢谢,新人刚入门

阅读 4.3k
3 个回答

最好的方式是定义一个包装类,包含data属性,data是User类型的。在接口中使用@RequestBody Wrapper w然后再用w.getData()获取User对象。

google的gson,可以将字符串转换为对象,如 Person person = gson.fromJson(json, Person.class);

谷歌的是转成Map<String,Object>
我现在用的是阿里巴巴的 com.alibaba.fastjson.JSON 转换Map<String,String>
Map<String, String> beanMap = JSON.parseObject(result, new TypeReference<Map<String, String>>() {});

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题