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つ)」を渡している。
{
"関東": [
"東京",
"千葉"
],
"東北": [
"青森",
"秋田"
]
}
コメント