Dart JsonEncoderクラスのコンストラクタとconvert()メソッド

シェルスクリプト Dart

Dart JsonEncoderクラスのコンストラクタとcоnvert()メソッドについてメモ書き。

タイトルは小難しいが、要はMap型等のオブジェクトをJson文字列に変換するクラスとメソッド。
JsonEncoderクラスには以下2つのコンストラクタが存在する。

コンストラクタ説明
JsonEncoder()JSONエンコード用のコンストラクタを生成。
JsonEncoder.withIndent()JSONエンコード用のコンストラクタを生成。
インデントを引数で指定でき、人間が見やすいよう複数行で整形する。

Json文字列に変換するオブジェクトはcоnvert()メソッドの引数として渡す。
公式サイトはこちら。

コーディングで確認。
コーディング中の型エイリアスについては以下を参照の事。

Dart 型エイリアス(typedef)
dartの型エイリアス(typedef)についてメモ書き。
import 'dart:cоnvert';

// Map型に地域用の型エイリアスを設定。
typedef RegionMap<T> = Map<T, List<T>>;

void main() {
  JsonEncoder encode = JsonEncoder();
  JsonEncoder encodeIndent = JsonEncoder.withIndent("  ");

  RegionMap<String> region = {
    "関東": ["東京", "千葉"],
    "東北": ["青森", "秋田"],
  };

  // JsonEncoder()の出力結果
  final String regionJson = encode.cоnvert(region);
  print(regionJson);
  // JsonEncoder.withIndent()の出力結果
  final String regionJsonIndent = encodeIndent.cоnvert(region);
  print(regionJsonIndent);
}

「JsonEncoder()」の実行結果。

{"関東":["東京","千葉"],"東北":["青森","秋田"]}

「JsonEncoder.withIndent(” “)」の実行結果。
引数としてインデント「” “(半角スペース2つ)」を渡している。

{
  "関東": [
    "東京",
    "千葉"
  ],
  "東北": [
    "青森",
    "秋田"
  ]
}

📁 DartでのJSON操作・主要クラスの全体像
JsonCodec、JsonDecoder、JsonEncoderの使い分けや実践的なJSON変換方法は、以下の解説マップをご覧ください。
➔ DartでJSONを扱う方法:JsonCodec・JsonDecoder・JsonEncoder解説マップ

コメント

タイトルとURLをコピーしました