实体内自定义字段并生成get set后 无法用 renderJson 返回前端

claimTKInfo.put("id", claimTKInfo.getId());
claimTKInfo.put("claimNum", claimTKInfo.getRelation());

数据是从某个文件取的JSON串,然后在转成Java对象,该对象里的属性都是自定义的,并且有get/set ,在最后使用renderJson() 的时候 前端 只拿到了一个空的json对象。  使用上面贴的方式 前端才会有数据 。 但是显然这么做很麻烦。 不知道有没有什么好的解决方案

@JFinal 帮帮忙

评论区

zhangtianxiao

2019-04-11 22:02

等波总回你吧

杜福忠

2019-04-11 22:03

手册:https://www.jfinal.com/doc/12-1
代码 贴的太少, 没法看,
先检查这里有配置其他的JsonFactory没
public void configConstant(Constants me) {
me.setJsonFactory(xxx);
}

再检查对象是否有值,比如提前打印看看
LogKit.info( JsonKit.toJson(claimTKInfo) );
renderJson(claimTKInfo);

JFinal

2019-04-11 22:40

renderJson 默认使用的 JFinalJson , 而 JFinalJson 在转换 model 时不是根据 getter 方法来转的,是根据 model 中的 attrs 来转的

如果你的对象继承了 model , 那么删掉属性,只需要使用 put 或者 set 方法将值放进去即可支持 json 转换

如果你的对象没有继承 model 或者希望使用 getter 方法进行转换,配置一下:
me.setJsonFactory(new FastJsonFactory());

其实文档中写得很详细

一个参数传一天

2019-04-12 09:37

@JFinal 这么配置可以实现,但是是针对所有的,如果只是指定某一个对象呢

杜福忠

2019-04-12 10:22

@一个参数传一天 https://www.jfinal.com/doc/12-4 文档中有说

JFinal

2019-04-12 15:39

@一个参数传一天 针对所有,与临时使用都可以,文档中很详细