🍮
JSON を入力すると Dart コードを生成してくれる JSON to Dart が便利
TL;DR
- JSON to Dart
JSON を入力すると Dart コードに変換してくれる JSON to Dart が便利
JSON デコード/エンコードする Dart コードは
書き方の基本がもう出てますし、必要であれば json_serializable などのコードジェネレートパッケージを導入すればスッとやれますね。とはいえ JSON は色んなオブジェクトを表現できるのでモノによってはめんどくさいな…… と思うこともちょいちょいあります。
そんな時に便利なのが JSON to Dart です。JSON 渡すだけで Dart コードを生成してくれて便利です。使い捨てのテストプロジェクトとかにも使いやすくていいなあ。
ついでに JSON の整合性チェックも走らせてくれるのでいやー助かります
- json_serializable | pub.dev
注意や既知のISSUEなど
GitHub 側の README.md にも書いてありますが
- Array of arrays are not supported:
- 配列の配列はサポートされていない
- 名前なし配列のオブジェクトをmapするようなコードは出力されない
- array and map #55
- https://github.com/javiercbk/json_to_dart/issues/55
- ※JSON 側を名前つき(Keyつき) 配列にしてやれば対応した Dart は生成される
#55 についてはISSUEに上がっているようにこうなる状態なので
こんな感じでmapをカマしてやるようにすれば良いかな〜。
List<User> _users = [];
final jsonArray = jsonDecode(json) as List<dynamic>;
_users = jsonArray.map((dynamic i) {
return User.fromJson(i as Map<String, dynamic>);
}).toList();
作者もISSUEみてないわけではなく contributer 募集してるようなのでプルリク送ろうかなと思ってます(まだできてない)
Discussion