🍮

JSON を入力すると Dart コードを生成してくれる JSON to Dart が便利

2020/11/09に公開

TL;DR

JSON を入力すると Dart コードに変換してくれる JSON to Dart が便利

JSON デコード/エンコードする Dart コードは
書き方の基本がもう出てますし、必要であれば json_serializable などのコードジェネレートパッケージを導入すればスッとやれますね。とはいえ JSON は色んなオブジェクトを表現できるのでモノによってはめんどくさいな…… と思うこともちょいちょいあります。
そんな時に便利なのが JSON to Dart です。JSON 渡すだけで Dart コードを生成してくれて便利です。使い捨てのテストプロジェクトとかにも使いやすくていいなあ。

ついでに JSON の整合性チェックも走らせてくれるのでいやー助かります

注意や既知のISSUEなど

GitHub 側の README.md にも書いてありますが

  • Array of arrays are not supported:
    • 配列の配列はサポートされていない
  • 名前なし配列のオブジェクトをmapするようなコードは出力されない

#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