jfinal 官方提供了 Json 抽象类的三个实现:JFinalJson、FastJson、Jackson,如果不进行配置,那么默认使用 JFinalJson 实现,指定为其它实现需要在 configConstant 进行如下配置:
public void configConstant(Constants me) { me.setJsonFactory(new FastJsonFactory()); }
上面配置将系统默认使用的 JFinalJson 切换到了 FastJson。还可以通过扩展 Json 抽象类以及 JsonFactory 来实现定制的 Json 实现。
假定用户扩展出了一个 MyJson 与 MyJsonFactory ,那么可以通过如下的方式切换到自己的实现上去:
public void configConstant(Constants me) { me.setJsonFactory(new MyJsonFactory()); }
此外,jfinal 官方还提供了 MixedJson、MixedJsonFactory 实现,这个实现让转 json string 时使用 JFinalJson,反向转成对象则使用 FastJson。
如果希望在非 web 下进行配置,需要使用 JsonManager,例如:
JsonManager.me().setDefaultJsonFactory(new MixedJsonFactory());
还可以配置 Date 类型转 json 后的格式:
public void configConstant(Constants me) { me.setJsonDatePattern("yyyy-MM-dd"); }
注意,在使用 MixedJsonFactory、FastJsonFactory、JacksonFactory 时需要添加其依赖,具体依赖参考下一小节内容。