本篇Gson使用的是最新的版本:Gson Github
implementation 'com.google.code.gson:gson:2.10'
1 字符串解析成对象
2 对象解析成字符串
3 字符串和对象字段不对应能解析吗?是可以的!
首先看一段json字符串:
{
"name": "liangchaojie"
}
再看一个Person类:
public class Person implements Serializable{
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
return "-"+name+"-";
}
}
我们如何转换:
Person person = new Gson().fromJson(json,Person.class);
Log.i("TAG", "object: "+person.toString());
String jsonResult = new Gson().toJson(person);
Log.i("TAG", "String: "+jsonResult);
看下结果:
字符串一个字段,对象也也一个字段,两者完全对应。我们看看以下几种情况
3.1 字符串比对象多字段
考虑一下,如果我们在字符串中多加一个sex字段?
3.2 对象比字符串多字段
考虑一下,如果我们在对象中多加一个sex的字段
3.3 字符串和对象同时比对方多字段
考虑一下,如果我们在对象中多加一个id1的字段? 在字符串多加一个id2的字段?
以上三种情况: 程序运行结果不变,不会Crash,可以正常解析