BundleConverter - JumeiRdGroup/Parceler GitHub Wiki

数据转换器

数据转换器是v1.0.0版本新加入的功能。所以没升级的小伙伴请先升级到最新版本使用。

作用

在对数据使用bundle进行存取时。当数据类型不匹配时。提供转换功能。以便使任意类型数据均能方便的使用bundle进行存取

设置默认使用的转换器

Parceler.setDefaultConverter(converter)

接口定义

/**
 * Bundle数据转换器。默认提供了两个json数据解析器:{@link FastJsonConverter}与{@link GsonConverter}.
 * @author haoge
 */
public interface BundleConverter {

    /**
     * 将指定数据data转换为对应type的数据类型并返回。
     *
     * <p>
     *     <i><b>请注意:被转换后的数据。应与参数指定的转换数据类型type一致。</b></i>
     * </p>
     *
     * @return 转换后的数据
     */
    Object convertToEntity(Object data, Type type);

    /**
     * 将指定数据data。转换为可被放入Bundle中的数据类型。并返回。
     *
     * <p>
     *     <i><b>请注意:被转换后的数据类型。应该为可被直接放入Bundle类中的数据类型, 如json串</b></i>
     * </p>
     *
     * @return 被转换后的数据。
     */
    Object convertToBundle(Object data);
}

默认提供的转换器

FastJsonConverter

使用FastJson作为数据转换器。对于原生Bundle不直接支持的数据类型。将其转换为json并传递解析

GsonConverter

使用GSON作为数据转换器。对于原生Bundle不直接支持的数据类型。将其转换为json并传递解析

框架并没有直接依赖FastJson或者Gson.所以对于使用哪个默认提供的转换器,需要看你的工程支持哪个JSON解析框架

⚠️ **GitHub.com Fallback** ⚠️