10.4.2使用GSON
GSON没有被添加到android官方的API中,因此如果想要使用该功能的话,则必须要在项目中添加一个GSON的Jar包。
该压缩包的下载地址http://code.google.com/p/google-gson/downloads/lilst
然后将该资源包进行解压,找到我们需要的gson-2.2.4.jar这个文件,将它拷贝到项目的libs目录下。
GSON库究竟是神奇在在哪里?其实它主要就是可以将一段JSON格式的字符串自动映射成一个对象,从而不需要我们再手动去编写代码进行解析了。
使用步骤:
1、定义一个类,将我们需要获取的内容都添加到这个类的字段中。
public class App{
private String id;
private String name;
private String version;
public String getId(){
return id;
}
public void setId(String id){
this.id = id;
}
public String getName(){
return name;
}
public void setName(String name){
this.name = name;
}
public String getVersion(){
return version;
}
public void setVersion(String version){
this.version = version;
}
}
再获取到服务器返回的数据之后,调用专门的解析数据的方法,在此方法中:
2、创建Gson对象,无参构造。
Gsongsonn = new Gson();
3、利用gson对象调用其fromJson()方法,解析出带有我们想要字段的类的对象或对象数组。
List<App>appList = gson.fromJson(jsonData, newTypeToken<List<App>>(){}.getType());
第一个参数是:JSON数据;
第二个参数是:借助TypeToken,获得期望解析成的数据类型。
完整代码示例:
public classApp{
private String id;
private String name;
private String version;
public String getId(){
return id;
}
public void setId(String id){
this.id = id;
}
public String getName(){
return name;
}
public void setName(String name){
this.name = name;
}
public String getVersion(){
return version;
}
public void setVersion(String version){
this.version = version;
}
}
private voidparseJSONWithGSON(String jsonData){
Gsongsonn = new Gson();
List<App> appList =gson.fromJson(jsonData, new TypeToken<List<App>>(){}.getType());
for(App app : appList){
Log.d(“MainActivity”, “id is “ +app.getId());
Log.d(“MainActivity”, “name is “ +app.getName());
Log.d(“MainActivity”, “version is “ +app.getVersion());
}
}