12.2 Json 配置

jfinal 官方提供了 Json 抽象类的三个实现:JFinalJson、FastJson、Jackson,如果不进行配置,那么默认使用 JFinalJson 实现,指定为其它实现需要在 configConstant 进行如下配置:

  1. public void configConstant(Constants me) {
  2.     me.setJsonFactory(new FastJsonFactory());
  3. }

上面配置将系统默认使用的 JFinalJson 切换到了 FastJson。还可以通过扩展 Json 抽象类以及 JsonFactory 来实现定制的 Json 实现。

假定用户扩展出了一个 MyJson 与 MyJsonFactory ,那么可以通过如下的方式切换到自己的实现上去:

  1. public void configConstant(Constants me) {
  2.     me.setJsonFactory(new MyJsonFactory());
  3. }

此外,jfinal 官方还提供了 MixedJson、MixedJsonFactory 实现,这个实现让转 json string 时使用 JFinalJson,反向转成对象则使用 FastJson。

如果希望在非 web 下进行配置,需要使用 JsonManager,例如:

  1. JsonManager.me().setDefaultJsonFactory(new MixedJsonFactory());

还可以配置 Date 类型转 json 后的格式:

  1. public void configConstant(Constants me) {
  2.     me.setJsonDatePattern("yyyy-MM-dd");
  3. }

注意,在使用 MixedJsonFactory、FastJsonFactory、JacksonFactory 时需要添加其依赖,具体依赖参考下一小节内容。