GSON解析JSON,gsonjson
Google提供的GSON開源庫可以讓解析JSON資料的工作簡單到不敢想象的地步。要使用GSON必須要在項目中添加一個 GSON的jar包。首先需要將GSON的資源壓縮包下載下來,下載
地址是:https://github.com/google/gson
GSON的強大之處,在於可以將一段json格式的字串自動對應成一個對象,從而不需要我們再動手去編寫代碼進行解析了。比如說一段json格式的資料如下所示:
{"name":"tom","age":"20"}
那麼我們就可以定義一個Person類,並加入name和age這兩個欄位,然後只需簡單地調用如下代碼就可以將json資料自動解析成一個Person對象了:
Gson gson=new Gson();
Person person=gson.fromJson(jsonData,Person.class);
如果需要解析的是一段json數組會稍微麻煩點,我們需要藉助TypeToken將期望解析的資料類型傳入到fromJson()方法,如下所示:
List<Person> people=gson.fromJson(jsonData,new TypeToken<List<Person>>(){}.getType());
好了,基本的用法就是這樣了,下面我們來試試,首先新增一個App類,並加入id,name和version這三個欄位,如下所示:
package com.jack.networktest; 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; } }
解析代碼:
//使用JSONWithGSON(String jsonData)方法解析json格式的資料 private void parseJSONWithGSON(String jsonData){ Gson gson=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()); } }