工作好きな情報系の雑記

[Android]JSONで多重配列を使う(Kotlin)

ググった感じ、やり方はあるにはありそうだったけど、わざわざパース用のクラスを定義するとか複雑だったり、自分の環境ではうまく動かなかったり、なかなかピンと来る方法が見つからなかった。

前提・実現したいことjson形式で送られてくる2次元配列をkotlinで取得したいのですが、1次元の状態でしか保存されず、うまくいきません。 "hoge" : ,,]var hogehoge: Array //宣言 初期化は無し以下のように最初
jsonの2次元配列をkotlinで取得したい|teratail - teratail[テラテイル]
I have a json like this:, , , [...
How to convert string array to object using GSON/ JSON? - Stack Overflow

そもそもAndroidのライブラリそのままでは、値としての多次元配列を一発でパースすることができないっぽい。
そういうのをパースしたければgetJSONArrayを繰り返して使うか、外部ライブラリ使ってくれって感じだった。

PythonだとJSONがいくらネストしてようが簡単にパースできるんだけどなぁ。
KotlinでもPythonみたいにラク~にできるようになるといいんだけどなぁ。

最終的にGsonを使う方法に落ち着いた。
これならシンプルだし、わざわざ先にパース用のクラスを定義したりする必要がない。

Gsonを使うためには、モジュールのbuild.gradleに以下の記述を追加する。

コード例は以下の通り。

Arrays are a very basic structure and can be serialized or deserialized using GSON API. Here we show you how to serialize and deserialize and arrays
GSON Array and Multi Dimensional Array Example - Memorynotfound
モバイルバージョンを終了