広告

Flutterラボの

プレミアム会員になる

【Flutter】JSON形式のデータをDecodeしてDartで扱える型に変換する

2020.11.07

※JSONデータについては天気予報アプリ制作を例にFlutterラボで解説しているので、そちらでもご覧ください。

Flutterラボ|動画で学ぶFlutter学習サイト Flutter・Dart・Firebaseに関するアプリ制作の技術を学ぶことができます。プログラミング初心者から経験者まで flutterlabo.tech

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から情報を取得する方法についても記事を書いているので参考になれば幸いです。


Flutterラボ
hatchoutschool
FlutterとNuxtに関する知識を発信しています! 動画で学べる学習サイト『Flutterラボ』と『Nuxtラボ』を運営 Flutterラボ:https://flutterlabo.tech/ 広告のECサイトを開発(https://ec-ad.tech/)