Android以JSONOject和GSON兩種方式解析json
阿新 • • 發佈:2018-05-20
length pre ray oid 字符 CA clas img name
json文件如下:
將獲取到的json數據轉化為String形式
OkHttpClient client = new OkHttpClient(); Request request = new Request.Builder() .url("http://10.0.2.2/get_data.json") .build(); Response response =client.newCall(request).execute(); String responseData= response.body().string();
以JSONObject方式解析:將獲取的字符串轉化為json數組,然後循環遍歷這個數組。
private void parseJSONWithJSONObject(String jsonData){ try{ JSONArray jsonArray = new JSONArray(jsonData); for(int i=0;i<jsonArray.length();i++) { JSONObject jsonObject= jsonArray.getJSONObject(i); String id = jsonObject.getString("id"); String version = jsonObject.getString("version"); String name = jsonObject.getString("name"); Log.i("JSONObject", "id is: "+id); Log.i("JSONObject", "version is: "+version); Log.i("JSONObject", "name is: "+name); } }catch (Exception e){ e.printStackTrace(); } }
以GSON方式:
首先依據json文件的形式建相應的類:
public class App { private String id; private String version; private String name; public String getId() { return id; } public void setId(String id) { this.id = id; } public String getVersion() { return version; } public void setVersion(String version) { this.version = version; } public String getName() { return name; } public void setName(String name) { this.name = name; } }
然後,新建一個Gson對象,利用TypeToken的方式將Data轉成一個List並把這個List傳入fromJson方法
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.i("GSON", "id is: "+app.getId()); Log.i("GSON", "version is: "+app.getVersion()); Log.i("GSON", "name is: "+app.getName()); } }
Android以JSONOject和GSON兩種方式解析json