Gson fromJson()

Gson类作为serialize, deserialize json的context, 主要用到的是fromJson(...) 及toJson()两个方法。进行实例化的时候调用new Gson(), 但其默认的constructor 为:

 

public Gson() {
		this(Excluder.DEFAULT, FieldNamingPolicy.IDENTITY, 
Collections.<Type, InstanceCreator<?>> emptyMap(), DEFAULT_SERIALIZE_NULLS, 
DEFAULT_COMPLEX_MAP_KEYS, DEFAULT_JSON_NON_EXECUTABLE, DEFAULT_ESCAPE_HTML,
DEFAULT_PRETTY_PRINT, DEFAULT_LENIENT, DEFAULT_SPECIALIZE_FLOAT_VALUES, LongSerializationPolicy.DEFAULT,Collections.<TypeAdapterFactory> emptyList());
	}

 也可以使用GsonBuilder来创建Gson实例, 它包含了各种configuration, 如版本控制, pretty printing, 自定义JsonSerializer, JsonDeserializer, InstanceCreateor, TypeAdapter, TypeAdapterFactory. 

 

 

在创建Gson实例的同时,TypeAdapterFactory也被加载,用于getAdapter(TypeToken<T> type) 时, 返回相应的TypeAdapter.

List<TypeAdapterFactory> factories = new ArrayList<TypeAdapterFactory>();

 

TypeAdapters 通过工厂模式返回不同的 TypeAdapterFactory

 



 在Gson.getAdapter(TypeToken<T> type)中循环读取factories, return TypeAdapter. 

使用策略模式, 创建不同的TypeAdapter。

 



 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值