![見出し画像](https://assets.st-note.com/production/uploads/images/38280745/rectangle_large_type_2_aff823c423385e9b41b419a686d0241c.jpeg?width=1200)
Photo by
mericanadesico
【Flutter】JSON形式のデータをDecodeしてDartで扱える型に変換する
※JSONデータについては天気予報アプリ制作を例にFlutterラボで解説しているので、そちらでもご覧ください。
APIやSQLiteから情報を取得すると、JSON形式で返ってくることがほとんどです。
この記事では、郵便番号検索APIを例に解説していきます。
以下のURLにアクセスすると、郵便番号検索情報を取得することができます。
https://zipcloud.ibsnet.co.jp/api/search?zipcode=5300057
{
"message": null,
"results": [
{
"address1": "大阪府",
"address2": "大阪市北区",
"address3": "曽根崎",
"kana1": "オオサカフ",
"kana2": "オオサカシキタク",
"kana3": "ソネザキ",
"prefcode": "27",
"zipcode": "5300057"
}
],
"status": 200
}
返ってくる情報はJSONで、Dartで扱うとString型のただの文字列なので、このままではDartのデータ型で扱うことはできません。
ここで使うのが、jsonDecode です。
さきほどのJSONをjsonDecodeすると今回の場合は、Map<String, dynamic>型に変換することができます。
Map<String, dynamic> map = jsonDecode(result.body);
あとは、通常のMap型と同じように扱うことができます。
int status = map['status']; // 200
String address1 = map['results'][0]['address1']; // 大阪府
Mapの使い方や、APIから情報を取得する方法についても記事を書いているので参考になれば幸いです。
この記事が気に入ったらサポートをしてみませんか?