Я пытаюсь разобрать json в список продуктов, используя Dart 2 для веб-сайтов.
У меня есть следующий класс:
class Product {
final String Problem;
final String Owner;
final String Description;
const Product({
this.Problem,
this.Owner,
this.Description,
});
factory Product.parse(Map<String, dynamic> json) {
print(json);
return new Product(
Problem: json["Problem"],
Owner: json["Owner"],
Description: json["Description"]
);
}
}
И я пытаюсь проанализировать это с помощью:
Stream<Product> getProducts() async* {
final payload = await HttpRequest.getString("products.json");
print(payload);
//var _json = (json.decode(payload));
print("break");
var list = json.decode(payload);
print(list);
//print(list);
final productList = (json.decode(payload) as List).cast<Map<String, dynamic>>();
}
Однако эта ошибка завершается с этой ошибкой:
ИСКЛЮЧЕНИЕ: тип '_JsonMap' не является подтипом ожидаемого типа 'Список'.
Я вижу, что у меня list[Symbol(_original)]
при отладке, но когда я пытаюсь оценить это, я возвращаюсь как неопределенное.
Я также пытался
List list = json.decode(payload) as List;
List<dynamic> list = json.decode(payload);
List<dynamic> list = json.decode(payload) as List<dynamic>;
var list = (json.decode(payload)).cast<Map<String, dynamic>>();
var list = (json.decode(payload)).cast<Map<dynamic, dynamic>>();
, но выдается та же ошибка.
Json
{
"Product_One": {
"Owner": "test",
"Description": "test description",
"Theme_Objective": "test objective",
"Technical_details": "test technical details",
"Problem": "test",
"Solution": "test"
}
}