DartのJsonDecoderクラスのコンストラクタとconvert()メソッドについてメモ書き。
JsonDecoderクラスのconvert()メソッドを使うと、JSON文字列をMap型やList型に変換できる。
convert()メソッドに渡した値が不適切な場合、FormatExceptionを返す。
公式サイトはこちら。
コーディングでconvert()メソッドを確認。
import 'dart:convert';
void main() {
JsonDecoder decode = JsonDecoder();
String region = '''
{
"関東": [
"東京",
"千葉"
],
"東北": [
"青森",
"秋田"
]
}
''';
// JsonDecoder()の出力結果
Map<String, dynamic> regionJson = decode.convert(region);
print(regionJson);
// ネストされたデータを抽出
regionJson.forEach((key, value) {
for (var element in value) {
print("$key $element");
}
});
}
実行結果。
{関東: [東京, 千葉], 東北: [青森, 秋田]}
関東 東京
関東 千葉
東北 青森
東北 秋田
1行目は以下の実行結果。
Json文字列をMap型にコンバートしている。
// JsonDecoder()の出力結果
Map<String, dynamic> regionJson = decode.convert(region);
print(regionJson);
2行目〜5行目は以下の実行結果。
Map型で取得したデータを個別に出力している。
実践を想定してネストしているデータを抽出し、出力している。
// ネストされたデータを抽出
regionJson.forEach((key, value) {
for (var element in value) {
print("$key $element");
}
});
コメント