官网: http://groups.google.com/group/google-gson
代码: https://github.com/google/gson
jar包下载: http://search.maven.org/#artifactdetails|com.google.code.gson|gson|2.3.1|jar
在as工程属性中找最新的gson库,或者直接在module的build.gradle中引入gson库.
1 dependencies { 2 implementation fileTree(include: ['*.jar'], dir: 'libs') 3 implementation 'com.android.support:appcompat-v7:27.1.1' 4 implementation 'com.android.support.constraint:constraint-layout:1.1.2' 5 //... 6 implementation 'com.google.code.gson:gson:2.8.5' 7 }实体很简单,两个字段,当然实体中的字段也可以是List或者Set类型的。
上面的代码重点是Gson对象,它提供了toJson()方法将对象转换成Json字符串,可以这个json串写到文件中.上面代码的str对象值为:
[{"name":"name0","age":0},{"name":"name1","age":5},{"name":"name2","age":10},{"name":"name3","age":15},{"name":"name4","age":20},{"name":"name5","age":25},{"name":"name6","age":30},{"name":"name7","age":35},{"name":"name8","age":40},{"name":"name9","age":45}]Gson提供了fromJson()方法来实现从Json相关对象到java实体的方法。
在日常应用中,通常转成单一实体对象和转换成对象列表或者其他结构。
当返回的是简单对象(只一个对象)时用gson.fromJson(string,xx.class); //提供两个参数,分别是json字符串以及需要转换对象的类型
比如json字符串为:
[{"name":"name0","age":0}]代码:
Person person = gson.fromJson(str, Person.class);当返回的是复杂对象,要用AVA泛型时,如有个集合(0-n)要用gson.fromJson(string,new TypeToken<XXX>(){}.getType());
代码:
1 List<Person> ps = gson.fromJson(str, new TypeToken<List<Person>>(){}.getType()); 2 for(int i = 0; i < ps.size() ; i++) 3 { 4 Person p = ps.get(i); 5 System.out.println(p.toString()); 6 }上面的代码使用了TypeToken,它是gson提供的数据类型转换器,可以支持各种数据集合类型转换。
转载于:https://www.cnblogs.com/sjjg/p/4714221.html