1. 程式人生 > >Android以JSONOject和GSON兩種方式解析json

Android以JSONOject和GSON兩種方式解析json

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