Android以JSONOject和GSON两种方式解析json

Posted dengmin111

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android以JSONOject和GSON两种方式解析json相关的知识,希望对你有一定的参考价值。

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的主要内容,如果未能解决你的问题,请参考以下文章

Android Gson 使用详解

Android中使用Gson解析JSON数据的两种方法

Android--------使用gson解析json文件

Gson解析复杂JSON字符串的两种方式

android中的Moshi vs Gson [关闭]

一起Talk Android吧(第三百五十九回:Gson库解析 VS JAava原生解析)