renderJson(bean)的时候,返回的json字符串都是带下划线的

renderJson(bean)的时候,返回的json字符串都是带下划线的。按道理,bean的话,不应该都是驼峰吗?但是在用jfinal默认的json工具的时候,都给转换成了下划线的,请问在哪里可以设置? 查了一些源码,没找到。。。

评论区

JFinal

2017-03-03 11:48

最彻底的办法是将数据库表的字段名做成驼峰形式的,如果做成了下划线形式,用如下办法:
1:为 model 生成 getter、setter 方法
2:使用 me.setJsonFactory(new FastJsonFactory()) 将 json 转换切换成 fastjson 实现

原因是 jfinal 默认用的 JFinalJson 实现类做的 json 转换,而这个转换实现类是直接从 model 中拿的 Map attrs 属性做的转换,不走 getter 方法

注意上面方法的一个副作用: fastjson 不支持 Record 对象的转换

sruz

2017-03-03 15:30

@JFinal 额,,,顿时感觉心好累 ,,,

JFinal

2017-03-03 15:34

@sruz 看一下 json 模块的源代码,代码很少,一看就全明白了,用生成器生成然后切换到 fastjson 以后,用着很方便, jfinal 下一版本考虑让 fastjson 支持 record,fastjson 使用将更方便

sruz

2017-03-06 17:26

@JFinal 嗯嗯,,,这个我知道怎么切换的,,,,其实 完全是为了少导一个包而已,,,,毕竟原生的用的也不赖,,,就是 默认能返回 驼峰的就好了,或者说 驼峰还是下划线都是可以切换的

JFinal

2017-03-06 17:29

@sruz 最省事的办法是将数据表字段直接搞成驼峰的,然后使用 MixedJsonFactory,所有事情都没有了

FastJson 除了不支持 record 以外,一切都好,这也是 MixedJsonFactory 之所以存在的最大原因

热门反馈

扫码入社