AndroidアプリでJSONファイルを読み込む方法を紹介します。AndroidStudio内assetsフォルダにjsonファイルを配置することで、簡単に読み込むことができるようになります。
JSON書き込み方法は以下記事で紹介しています。
前準備:androidプロジェクトにjsonファイルを配置する
jsonファイルを読み取るためには、まずjsonファイル自体をアプリ内に配置(保存)する必要があります。本記事ではおそらく一番簡単な方法である、assetsフォルダ内にjsonファイルを保存する方法を紹介します。
まずはプロジェクト内にassetsフォルダを作成します。
AndroidStudioにて、「File > New > Folder > Assets Folder」を選択します。
するとAssetsフォルダを作成に関する確認のウィンドが出てきます。「Finish」をクリック。

これでプロジェクト内にassetsフォルダを作成できました。
次にjsonファイルを作成します(フォルダ上にて右クリック>New>Fileから作成)。

ここでは「myjson.json」というファイル名で、中身は以下のようにしました(佐藤と山田の情報)。
jsonファイルの中身は何でもよいですが、コピペ用として一応掲載。
{
"students": [
{
"name": "佐藤",
"no": 1,
"height-weight": [170,60],
"score": {
"testA": 70,
"testB": 80,
"testC": 90
}
},
{
"name": "山田",
"no": 2,
"height-weight": [180,80],
"score": {
"testA": 82,
"testB": 85,
"testC": 87
}
}
]
}
jsonファイルを読み込む(Kotlin)
まず文字列として読み込み、変数jsonStrに格納します。
次にその文字列をJSONObjectに、さらにそれをJSONArrayと変形することで自在にデータを取り出せるようになります。
//jsonファイルの読み込み(テキスト形式)
val assetsManager = resources.assets
val inputStream = assetsManager.open("myjson.json")
val bufferedReader = BufferedReader(InputStreamReader(inputStream))
val jsonStr = bufferedReader.readText()
//テキストをJSONオブジェクトに変換、さらにJSONアレイに変換
var jsonObj = JSONObject(jsonStr)
var jsonArray = jsonObj.getJSONArray("students")
上記変数jsonArrayにjsonファイルの”students“要素がすべて含まれています。
以下のようにjsonArrayにアクセスすることで情報を抽出することができます。
データはjsonArrayには配列っぽく格納されているので、0番目を指定すると佐藤、1番目を指定すると山田の情報を参照します。
val data1 = jsonArray.getJSONObject(0).getString("name")
// 佐藤
val data2 = jsonArray.getJSONObject(1).getString("height-weight")
// [180,80]
val data3 = jsonArray.getJSONObject(1).getString("score")
// {"testA": 82,"testB": 85,"testC": 87}
val data4 = jsonArray.getJSONObject(1).getJSONObject("score").getString("testA")
// 82
上記では.getString()を使用していますが、Intで取り出したい場合は.getInt()、Booleanで取り出したい場合は.getBoolean()などが使用できます。
(jsonファイル側の内容と型の整合が取れない場合、もちろんエラーになります)
さいごに
今回はAndroidアプリでJSONファイルを読み取る方法を紹介しました。JSONは慣れると便利なのでぜひ活用してみてください。
JSONファイルを編集する方法は以下記事で紹介しています。
以下、Android関連記事。








コメント