2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

[Flutter] スネークケースのAPIレスポンスを自動でキャメルケースに変換する

Posted at

はじめに

APIレスポンスのJSONフィールドがスネークケースで返されることは珍しくありません。
一方で、クライアント側ではキャメルケースを使いたい場合が多いと思います。

通常、Dartでこれを解決するためには @JsonKey アノテーションを使用してJSONのキー名とプロパティ名を明示的にマッピングする必要があります。
しかし、大量のプロパティが存在する場合、それぞれにアノテーションをつけるのは大変ですし、つけ忘れる可能性も高まります。
そこで json_serializable パッケージの機能を利用し、自動でキャメルケースに変換する方法を見つけたので、それを共有します。

設定方法

設定は非常に簡単です。(パッケージをインストールしてない人はこちらから)
プロジェクトのルートディレクトリに build.yaml ファイルを作成し、以下の内容を追記します。

build.yaml
targets:
  $default:
    builders:
      json_serializable:
        options:
          field_rename: snake

デフォルトの設定はfield_rename: null となっているので、snakeを指定することで、スネークケースのキー名が自動的に対応するキャメルケースのプロパティにマッピングされます。便利ですね!

また、他にも細かい設定ができるので詳細は、json_serializableパッケージの公式ドキュメントを参照してください。

参考資料

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?