Необработанное исключение flutter: тип ‘_InternalLinkedHashMap ‹String, dynamic›’ не является подтипом типа ‘Iterable ‹dynamic›’

Хотя этот вопрос задавали несколько раз, но те, кого я видел, мне не помогли. Так вот,

У меня есть фиктивный файл json в папке с ресурсами: recipe.json

Вот recipe.dart, который действует как мой класс модели:

class RecipeModel { final String id; final String name; final String videoLink; final String author; final String category; final String time; RecipeModel({ required this.id, required this.name, required this.videoLink, required this.author, required this.category, required this.time, }); factory RecipeModel.fromJson(Map<String, dynamic> json) { return RecipeModel( id: json[‘id’], name: json[‘name’], videoLink: json[‘videoLink’], author: json[‘author’], category: json[‘category’], time: json[‘time’], ); } }

А вот HomeScreen.dart:

Future<List<RecipeModel>> getRecipeData() async { // var response = await http.get( // Uri.https(«jsonplaceholder.typicode.com», ‘users’), // ); String response = await DefaultAssetBundle.of(context) .loadString(‘assets/json/recipe.json’); var result = json.decode(response); List<RecipeModel> recipes = []; for (var u in result) { RecipeModel recipe = RecipeModel( id: u[‘id’] ?? «», name: u[‘name’] ?? «», videoLink: u[‘videoLink’] ?? «», author: u[‘author’] ?? «», category: u[‘category’] ?? «», time: u[‘time’] ?? «», ); recipes.add(recipe); } print(recipes.length); return recipes; } @override void initState() { super.initState(); getRecipeData(); }

Как видите, я хочу получить данные сразу после загрузки страницы и сохранить указанные данные в списке, который затем можно использовать в gridview. Но каждый раз, когда загружается экран, я получаю эту ошибку:

Unhandled Exception: type ‘_InternalLinkedHashMap<String, dynamic>’ is not a subtype of type ‘Iterable<dynamic>

Я следил за некоторыми учебниками, в которых полностью игнорировалось все, что связано с моделями, которые мне не нужны. Что мне здесь не хватает? Что мне нужно сделать, чтобы получить результат в списке, который я затем могу использовать внутри gridview?

мои данные json выглядят примерно так:

{ «data»: [ {…..}, {…..} ] }

Результат — map, а не list, так как результатом является data, а data — это список, поэтому сначала извлеките data из map, а затем перебирайте список.   —  person Fahim Hoque    schedule 28.04.2021

Источник: ledsshop.ru

Стиль жизни - Здоровье!