JFinal—Json2Model-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

JFinal—Json2Model

今天用jackson从json转对象的时候发现json2model的时候报错,异常如下:

json字符串:{"user":{"email":"hello@hw.com","password":"world"}}

org.codehaus.jackson.map.JsonMappingException: 
Conflicting setter definitions for property "attrs": 
com.jfinal.plugin.activerecord.Model#setAttrs(1 params)
 vs com.jfinal.plugin.activerecord.Model#setAttrs(1 params)

觉得应该是jfinal对model做了特别的处理,没有了getter、setter之后json工具好像就不能用了,不知道jfinal里面想要从json转model该做那些处理呢?

展开
收起
小旋风柴进 2016-06-08 11:48:41 2614 0
1 条回答
写回答
取消 提交回答
  • 小旋风柴进

    1、错误里面所谓的conflict指的是
    public Model<M> setAttrs(Map<String, Object> attrs)

    public Model<M> setAttrs(M model)
    这两个方法。
    2、以上说明jackson对class做了预解析(反射+映射),Model里面没有实际的数据属性,所以这种预解析方式并不适合Model
    3、即使jackson不做预解析,直接反射setter方法,Model里面默认也没有setter。所以依然是无法转换回去的……
    结论就是,AR-Model这种数据结构貌似不适合默认的json2Model方式,需要json工具对这种数据结构的支持,或者看看能不能采取曲线方式:json2Map<String, Object>+Model.setAttrs(Map<String, Object>)

    2019-07-17 19:31:36
    赞同 展开评论 打赏
问答排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载