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

Dar言語StreamクラスtoSet()メソッドDart

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

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

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

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

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

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

// 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.convert(region);
  print(regionJson);
  // JsonEncoder.withIndent()の出力結果
  final String regionJsonIndent = encodeIndent.convert(region);
  print(regionJsonIndent);
}

「JsonEncoder()」の実行結果。

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

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

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

コメント

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