Я новичок в флаттере и пытаюсь разобрать локальный. json файл на список объектов. Вот мой код:
import 'dart:convert';
import 'dart:async' show Future;
import 'package:flutter/services.dart';
class ItemManager {
List<Item> items;
ItemManager() {
loadItems();
}
void loadItems() async {
var tempList = await getItems();
items = tempList;
}
Future<List<Item>> getItems() async {
String dataString = await loadAsset();
var json = jsonDecode(dataString)['items'] as List;
List<Item> parsedList = json.map((i) => Item.fromJson(i)).toList();
return parsedList;
}
Future<String> loadAsset() async {
String value = await rootBundle.loadString('assets/items.json');
return value;
}
}
class Item {
String title = "";
String subtitle = "";
int subIcon = 1;
bool isFavourite = false;
String html = "";
Item({this.title, this.subtitle, this.subIcon, this.isFavourite, this.html});
factory Item.fromJson(Map<String, dynamic> parsedJson) {
return Item(
title: parsedJson['title'].toString(),
subtitle: parsedJson['subtitle'].toString(),
subIcon: parsedJson['subIcon'],
isFavourite: parsedJson['isFavourite'],
html: parsedJson['html'],
);
}
}
Я видел только парсинг людей. json с asyn c funtcions, но это не то, что я хочу. Может ли кто-нибудь объяснить, как я могу разобрать синхронный файл. json, чтобы в моих элементах списка уже были все элементы сразу после метода loadItems ()? Есть идеи?