12.2 Json 配置

优质
小牛编辑
126浏览
2023-12-01

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 时需要添加其依赖,具体依赖参考下一小节内容。