Android-Json文件解析(GSON,JSONOBJECT)

JSONOBJECT解析数据

若JSON格式数据如下所示:

[{"id":"5","version":"5.5","name":"Clash of Clans"},
 {"id":"6","version":"6.0","name":"Boom Beachx"}]

可以看到要解析的数据是一个JSON数组,故将数据传入JSONArray对象中,然后循环从中取出JSONObject对象,并调用getString()方法取出数据,代码如下:

JOSONArray jsonArray = new JSONArray(jsonData);
for(int i = 0;i < jsonArray.length();i++)
{
    JSONObject jsonObject = jsonArray.getJSONObject(i);
    String id = jsonObject.getString("id");
    String name = jsonObject.getString("name");
    String version = jsonObject.getString("version");
    Log.d("zx","id = "+id);
    Log.d("zx","name = "+name);
    Log.d("zx","version = "+version);
}

GSON解析数据

先在build.gradle的dependencies中添加如下内容

 implementation 'com.google.code.gson:gson:2.9.0'

若JSON格式数据如下所示:

{
    "name":"Tom",
    "age":20
}

若要解析上述数据,可以先定义一个Person类,加入name和age两个字段,然后调用如下代码就可以将JSON数据自动解析成Person对象

Gson gson = new Gson();
Person person = gson.fromJson(jsonData,Person.class);

如果要解析的是一段JSON数组会稍微麻烦一点,需要用TypeToken将期望解析成的数据类型传入fromJson()方法中,代码如下:

Gson gson = new Gson();
List<Person> pepole = gson.fromJson(jsonData,new TypeToken<List<Person>>()
                                    {}.getType());

一个自动生成JSON JAVA实体类的网址:https://www.bejson.com/json2javapojo/new/

 

posted @ 2022-05-18 22:15  今天没失眠  阅读(29)  评论(0编辑  收藏  举报