12.3 Json 的四个实现

    JFinalJson 是 jfinal 官方最早的一个实现,这个实现最重要一点就是在转换 jfinal 的 Model 时是先获取 Model 中的 Map attrs 属性,然后再去转换这个 Map 对象。即便你的 Model 生成了 getter 方法,也不会被转换时调用。

    针对 Model.attrs 属性进行转换而不是利用 getter 方法进行转换有如下几个原因:

    A:支持多表关联查询结果的转换

    B:早期的 jfinal 用户没有为 Model 生成 getter 方法

    注意:JFinalJson 只支持对象转 json string,不支持反向的 json string 转对象,可以通过使用 MixedJson 来支持反向转换:me.setJsonFactory(new MixedJsonFactory());

    FastJson 是对第三方的 fastjson 进行的二次封装,该实现最重要的一点就是转换依赖于 Model、java bean 的 getter 方法。使用 fastjson 可以按照其官方文档去配置 fastjson 的各种转换参数。

    该实现与 FastJson 类似,是对第三方的 jackson 的二次封装

    使用 Jackson 封装时,需要添加其依赖:

    MixedJson 是对 JFinalJson、FastJson 的再一次封装,Object 转 json string 时使用 JFinalJson 的实现,而反向 json string 转 Object 使用 FastJson。

    使用 MixedJson 封装时需要添加 FastJson 封装的依赖: