Gson(一)
Gson是Google提供用来在java对象和JSON数据之间进行映射的Java类库,可以将一个JSON字符串转成一个Java对象,也可以反向转化。
Gson里最重要的对象有两个:Gson 和 GsonBuilder
Gson使用的两个基本方法:
- toJson() //将java对象转换成json字符串
- fromJson() //将json字符串转换成Java对象
Android开发中GSON库需要在项目中填加,编辑modul的build.gradle文件,在dependencies中添加compile ‘com.google.code.gson:gson:2.7’ 当还有更新的版本,这里还要注意插件与gradle版本兼容的问题。必要时可以更新gradle或者修改项目中classpath里的gradle的版本号。
toJson()方法
//将java对象生成json对象
private String generateJSONWithGson(Person person) {
Gson gson = new Gson();
List<Person> personList = new ArrayList<Person>();
personList.add(person);
personList.add(person);
String jsonStr = gson.toJson(personList);
return jsonStr;
}
fromJson()方法
//将json对象转化成java对象
private Person parseJSONWithGson(String jsonStr) {
Gson gson = new Gson();
//提供Json字符串变量str,还有需要转换的java对象类型
// Person person = gson.fromJson(jsonStr, Person.class);
//解析JSON数组需要使用TypeToken将期望的类型传入fromJson中
List<Person> personList = gson.fromJson(jsonStr, new TypeToken<List<Person>>() {
}.getType());
//对于数组对象,我选择了如下展示,这个通过Android Monitor来监测到这个日志
for (Person person : personList) {
Log.d("MainActivity", "age is " + person.getAge());
Log.d("MainActivity", "name is " + person.getName());
}
return person;
}
另附日志结果:日志结果
从Json数据格式到对象,使用fromJson(),上述两种情况一种是传入单个类 如Person类型,另外是传入集合类型 如List() 。