【Android】JSONデータをパースする方法

AndroidJSONデータをパースする方法をまとめます。

JSONのパース


まず、try / catchのなかに処理を書く必要があります。

catch (JSONException e)の記述が必要みたいです。

jsonパースの処理はtryのなかで行っていきます。

try {

} catch (JSONException e) {
    e.printStackTrace();
}

次に、JSONオブジェクトを作成します。

このJSONオブジェクトを利用して、JSONをパースしていきます。

JSONObject json = new JSONObject(JSONデータ);

パース方法1


以下のJSONデータをパースする場合です。

{
    data1 : "データ1",
    data2 : "データ2",
    data3 : "データ3"
}

以下のソースコードJSONデータを取得できます。

// データ1を取得する場合
String data1 = json.getString("data1");

パース方法2


以下のJSONデータをパースする場合です。

{
    data : {
        title : "タイトル",
        name : "名前",
        content : "内容"
    }
}

以下のソースコードJSONデータを取得できます。

// タイトルを取得する場合
JSONObject item = json.getJSONObject("data");
String title = item.getString("title");

または、以下のようにします。(上記ソースコードの取得結果と同じです。)

// タイトルを取得する場合
String title = json.getJSONObject("data").getString("title");

パース方法3


以下のJSONデータをパースする場合です。

{
    data : {
        world : {
            japan : "日本",
            america : "アメリカ",
            chaina : "中国"
        }
    }
}

以下のソースコードJSONデータを取得できます。

// 日本を取得する場合
String japan = json.getJSONObject("data").getJSONObject("world").getString("japan");

パース方法4


以下のJSONデータをパースする場合です。

{
    datas : [
        {
            name : "名前1",
            age : "年齢1"
        },
        {
            name : "名前2",
            age : "年齢2"
        },
        {
            name : "名前3",
            age : "年齢3"
        }
    ]
}

以下のソースコードJSONデータを取得できます。

配列から取得するには、getJSONArrayを使用します。

JSONArray datas = json.getJSONArray("data");

for (int i = 0; i < datas.length(); i++) {
        JSONObject data = datas.getJSONObject(i);
        // 名前を取得
        String name = data.getString("name");
        // 年齢を取得
        String age = data.getString("age");
}

または、以下のようにします。(上記ソースコードの取得結果と同じです。)

// 配列0番目の名前を取得する場合
String name = json.getJSONArray("datas").getJSONObject(0).getString("name");


try {
    JSONObject json = new JSONObject(JSONデータ);

    //取得したいJSONデータの構造をもとに上記のパース方法いずれかを記述

} catch (JSONException e) {
    e.printStackTrace();
}

参考サイト:

【JSONObject】AndroidでJSONをパースする【解析】 – 手巻き式IT

U2Kの覚え書き androidでjsonデータをパースする