话不多说,代码先上
1 config配置
配置中 我添加了JsonFactory的处理类: me.setJsonFactory(new JacksonFactory());
2 返回结果
controller内的处理细节
返回数据工具类内的处理细节,本方法将 Page类作为object对象传递给了renderJson方法。
3 ajax的请求结果
ajax中的list有 columnNames字段和columnValues字段,在不不指定json处理类的时候返回的结果如下:
4 非指定json处理类的配置
5 非指定下的ajax的数据返回结果
-------------------------------
指定Json处理的工具类之后,返回的json数据格式与不指定json处理工具类时json数据格式不一致。
建议尽量使用生成了 getter 方法的 Model 再进行转换,jackson 与 fastjson 会根据它的 getter 方法进行转换
多种转换方式可以自由搭配:
1:使用 jfinal 自己的转换工具 JFinalJson.getJson().toJson(...)
2:使用 jackson 工具 Jackson.getJson().toJson(...)
最后再通过 renderJson(jsonString) 进行输出,因为 renderJson 是可以直接认 String 参数的
me.setJsonFactory(...) 是配置默认 json 转换工具,在此基础上仍然可以灵活搭配来使用,此外, jfinal 还提供了一个 MixedJsonFactory 可以让转 json 时使用 jfinal 实现,而 parse 时使用 fastjson 实现