JSONOBJECT解析數據 若JSON格式數據如下所示: [{"id":"5","version":"5.5","name":"Clash of Clans"}, {"id":"6","version":"6.0","name":"Boom Beachx"}] 可以看到要解析的數據是一個JSON數 ...
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/