JsonCodec で JSON デコード/エンコードを行う方法

Page content

Flutter で JsonCodec を使って JSON のデコード/エンコードを行う方法を紹介します。

このエントリーをはてなブックマークに追加

Flutter で JSON のデコード/エンコードを行うにはdart:convertライブラリを使うのが一番簡単です。

使い方

デコード/エンコードする場合dart:convertをインポートする必要があります。

import 'dart:convert';

dart:convertライブラリにはJsonCodecクラスがあり、JsonCodecライブラリが JSON のデコード/エンコードを行います。

jsonという名前でデフォルトのJsonCodecインスタンスが使えるので、jsonを使っていきます。

カスタマイズしたJsonCodecを使うこともできます。API ドキュメントを参照してください。

デコード

JSON データからMapデータにデコードを行います。 通常ネットからダウンロードしてきた JSON ファイルを渡すことが多いと思いますが、今回はわかりやすく文字列を渡しています。

String jsonString = '''
        {"name": "mario", "age": 22}
      ''';
Map<String, dynamic> jsonData = json.decode(jsonString);

この時jsonDataは以下のようになります。

{
  name: "mario",
  age: 22
}

MapになっているのでjsonData["name"]"mario"を取ることができます。

エンコード

次は逆のパターンで、Mapデータから JSON データにエンコードを行います。

Map<String, dynamic> jsonData = {
    'name': 'mario',
    'age': 22,
  };
  
String jsonString = json.encode(jsonData);

この時jsonStringは以下のようになります。

{"name":"mario","age":22}

見た目はデコード結果と似てますが、こちらはただの文字列になってます。

Flutter 公式ドキュメント

このエントリーをはてなブックマークに追加