转载http://xiaoming2xiaohong.iteye.com/blog/1393392
最近的项目,接口传输格式用json,试用了一下google的gson框架,感觉不错,目前最新的版本是2.0
1、如果一个字段标记为transient,那么默认是被忽略的,在serialization和deserialization中都不会加进来
2、当调用tojson()方法时,为null的字段,不会输出到json串里;当调用fromjson()方法时,如果vo里有,但是json串里没有,则字段会被设置成null;如果vo里没有,json串里有,那么该字段会被忽略
3、内部类默认情况下没法deserialize,除非实现instancecreator
4、调用fromjson()方法时,必须要指定vo的type,gson才能知道怎么deserialize传进来的json串,以下是例子:
java代码
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLicmbw5ichR3cf52bjl2LcNHa0FGcjlGcfd3Xw9CXt92YuUWelRXaucmbvh2bhlGeycmbp12bhlGevw1LcpDc0RHaiojIsJye.png)
string json = "[1,2,3,4,5]";
type type= new typetoken<collection<integer>>(){}.gettype();
collection<integer> ints = gson.fromjson(json,type);
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLicmbw5ichR3cf52bjl2LcNHa0FGcjlGcfd3Xw9CXt92YuUWelRXaucmbvh2bhlGeycmbp12bhlGevw1LcpDc0RHaiojIsJye.png)
string json = "{\"field1\":\"value1\",\"field2\":\"value2\",\"field3\",\"value3\"}";
type type= new typetoken<myobject>(){}.gettype();
myobject myobject = gson.fromjson(json,type);