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。



 

猜你喜欢

转载自ljhupahu.iteye.com/blog/2317348