今天用JFINAL中的 renderJson 有一个小问题,不知道是就这样设计?还是有小BUG,还是我用的不对,请各位前辈协助下呗!
具体代码如下:
1,我有个 public class SysModule extends Model<SysModule> 的实体类,实体类中除了数据库结构中的字段外,我自己加了个 private List<SysModule> children 子模块属性。
2,在业务使用过程的从数据库取了当前用户下所有的模块集合,并通过renderJson(list)返回前端,返回后发现只有一级的SysModule ,实体类下的children 都没有了。
业务实现方法:
后台集合值:
渲染后返回前端接收值:
sysModule.put("children", children) 即可
如果你的 SysModule 中的 children 属性配备了 getter 方法,可以用一下 fastjson 或者 jackson 来转换:
Fastjson.getJson().toJson(...)
Jackson.getJson().toJson(...)
jfinal 提供了三种 json 转换实现,前面两行代码分别是 fastjson还有 jackson,这两个是根据 getter 方法去转的。还有是一种是 JFinalJson,这样用:
JFinalJson.getJson().toJson(...)
JFinalJson 实现类是根据 model 中的 Map attrs 或者 Recod 中的 Map columns 来转换的,不会理会 getter 方法