我相信你知道上面的问题。我想知道我怎样才能解决它。我知道我的数据是列表形式的,但在我使用的数据类map中。我真的不明白我应该如何改变它的工作,基本上我只是跟随颤振。开发文档
如果你想知道我做了什么
我基本上是用json_serializable解析数据的。在使用测试数据进行的测试中,所有测试都运行良好。
我的数据:
我的模型包含一个标题,图像
`import 'package:json_annotation/json_annotation.dart';
import 'modelData.dart';
part 'Modell.g.dart';
@JsonSerializable(explicitToJson: true)
class Modell {
final String title;
final String image;
final ModelData modelData;
Modell(this.title, this.image, this.modelData);
factory Modell.fromJson(Map<String, dynamic> json)
=> _$ModellFromJson(json);
Map<String, dynamic> toJson() => _$ModellToJson(this);}
`
import 'package:json_annotation/json_annotation.dart';
part 'modelData.g.dart';
@JsonSerializable()
class ModelData {
final String title;
ModelData(this.title);
factory ModelData.fromJson(Map<String, dynamic> json)
=> _$ModelDataFromJson(json);
Map<String, dynamic> toJson() => _$ModelDataToJson(this);
}
我正在使用以下代码使用数据:
var modelle = const[];
Future loadDataList() async {
String content = await rootBundle.loadString("assets/ddddddd.json");
List collection = json.decode(content);
List<Modell> _modelle = collection.map((json) => Modell.fromJson(json)).toList();
setState(() {
modelle = _modelle;
});
}
void initState() {
loadDataList();
super.initState();
[
{
"title":" Alfa Romeo ",
"image":" AlfaRomeo.png ",
"modelData":[
{
"title":" 4C ",
"variantenData":[
]
},
我希望我写得清楚
-----更新-----
我测试了一下
import 'package:json_annotation/json_annotation.dart';
import 'modelData.dart';
part 'Modell.g.dart';
@JsonSerializable(explicitToJson: true)
class Modell {
final String title;
final String image;
List <ModelData> modelData; //adding List
Modell(this.title, this.image, this.modelData);
factory Modell.fromJson(Map<String, dynamic> json)
=> _$ModellFromJson(json);
Map<String, dynamic> toJson() => _$ModellToJson(this);
}
在本部分:
var modelle = const[];
Future loadDataList() async {
String content = await rootBundle.loadString("assets/ddddddd.json");
List collection = json.decode(content);
List<Modell> _modelle = collection.map((json) => Modell.fromJson(json)).toList();
setState(() {
modelle = _modelle;
});
}
void initState() {
loadDataList();
super.initState();
具体如下:
List collection = json.decode(content);
如果转到颤振示例,您将看到集合
将返回一个贴图
尝试更改为:
Map<String, dynamic> collection = json.decode(content);
您已经分析了数据,除了名为Modell的类之外,所有类都应该包含一个ModelData列表,而不是单个ModelData。请将类型更改为ModelData列表,希望它能正常工作。
class Modell {
final String title;
final String image;
final List<ModelData> modelDataList;
Modell(this.title, this.image, this.modelDataList);
factory Modell.fromJson(Map<String, dynamic> json)
=> _$ModellFromJson(json);
Map<String, dynamic> toJson() => _$ModellToJson(this);}```
我正在解码一个响应体,我得到了错误: 我正在解析JSON对象的JSON数组,其中一个字段也是对象列表,我怀疑我的问题源于此。我也在使用json_serializable库。下面是我的代码,我省略了一些字段,更改了一些变量名称,但它代表相同的代码: 从。json_serializable生成的g dart文件(将编码部分复制): 这是我未来的职能:
我正在开发一个依靠API REST调用的flutter应用程序。来自API的响应有点复杂。当调用我的API(例如:api/产品)时,我可以从日志中看到响应:但是我有这个错误: 类型列表 StackTrace: [更新]:退货产品响应。fromJson(response)而不是response ProductsRespository: ProductsBloc: 回应: ApiProvider: 模
我正在使用flatter构建一个事件应用程序,它从Rails api获取数据并显示其细节。我犯了与这个问题相同的错误,并且已经尝试了“kapsid”的答案,但还不能解决。 我的模型类(evento.dart)。基本上,它代表一个较大的事件,其中包含多个小事件。 main.dart列举各种类似的大型活动 这是示例JSON 我做错了什么??
我正在学习飞镖和颤振。现在,我尝试将JSON作为一种持久性方法。我犯了很多错误,都是关于类型和内容的。这是我遇到的最新错误:
我试图加载数据从我的strapi数据库列表,即:http://localhost:1337/products下面是一个示例数据从我的数据库: [{“picture”:[{“_id”:“602d327fe790253a44f466e7”,“name”:“petromax.png”,“alternativeText”:“caption”:“hash”:“petromax_14618; add72”,“
我怎样才能解决这个问题?? 编辑:“extractedData”是映射,如何将其转换为列表以添加到“final List loadedProducts=[];”中? 对于要求的帖子:“看起来你的帖子大部分是代码,请添加更多细节。”“看起来您的帖子大部分是代码;请添加更多详细信息。” 输出: