dio + freezedを最近になって触り始めましたが解決方法が見つからず困っています
解決方法をご教示いただけないでしょうか?
実現したいこと
以下のようなJSONをパースして、下記の例にある[key1]や[key2]だけでなく
[subkey]の値にもアクセスしたいです
{ "data": [ { "key1": "data", "key2": "data", "key3": [ { "subkey11": "data", "subkey12": "data", "subkey13": "data" }, { "subkey21": "data", "subkey22": "data", "subkey23": "data" } ] }, { "key1": "data", "key2": "data", "key3": [ { "subkey11": "data", "subkey12": "data", "subkey13": "data" }, { "subkey21": "data", "subkey22": "data", "subkey23": "data" } ] } ] }
該当のソースコード
key「data」までは 「List<dynamic> data = map["data"];」と書く事でパース出来る事はわかりましたが
subkeyが文字列になってしまいます。
HTTP通信(DIO)
1 Future<List<mdl>?> fetchList() async { 2 const url = 'https://dummy.com/dummy'; 3 final response = await dio.get( 4 url, 5 options: Options(headers: { 6 "Content-Type": "application/json", 7 }), 8 ); 9 10 if (response.statusCode == 200) { 11 try { 12 Map<String, dynamic> map = Map<String, dynamic>.from(response.data); 13 List<dynamic> data = map["data"]; 14 final list = data.map((e) => mdl.fromJson(e)).toList(); 15 return list; 16 } catch (e) { 17 throw e; 18 } 19 } else { 20 return null; 21 } 22 } 23}
ListView
1 return Scaffold( 2 body: Center( 3 child: asyncValue.when( 4 data: (data) { 5 return data.isNotEmpty 6 ? ListView( 7 children: data.map((mdl mdl) { 8 return Card( 9 child: GestureDetector( 10 onTap: () {}, 11 child: ListTile( 12 title: Text(mdl.key1.toString()), 13 ))); 14 }).toList(), 15 ) 16 : const Text('データはありません'); 17 }, 18 loading: () => const CircularProgressIndicator(), 19 error: (error, _) => Text(error.toString()), 20 ), 21 ), 22 );
補足情報(FW/ツールのバージョンなど)
Flutter 3.3.9 • channel stable • https://github.com/flutter/flutter.git
Framework • revision b8f7f1f986 (4 weeks ago) • 2022-11-23 06:43:51 +0900
Engine • revision 8f2221fbef
Tools • Dart 2.18.5 • DevTools 2.15.0


回答3件
あなたの回答
tips
プレビュー