如何在飞镖/长笛上进行toJson编码方法



我使用fromJson方法从Json解码http请求中恢复一个带有List的Struct,并在我的类上接收它,但现在我想做一个相反的操作,我想将类上的数据传递给我的toJson方法,并将其发送到Json编码http POST。拜托,我是飞镖/长笛的新手,有人知道怎么做吗?

import 'dart:convert';
List<Itens> userFromJson(String str) =>
List<Itens>.from(jsonDecode(str).map((x) => Itens.fromJson(x)));
class Coletas {
final int codigo;
final String dataIni;
late String? dataFin;
late String? status;
final List<Itens> itemList;
Coletas(
{
required this.dataIni,
this.dataFin,
this.status,
required this.codigo,
required this.itemList
}
);
factory Coletas.fromJson(Map<String, dynamic> json) {
return Coletas(
dataIni: json['dtData'],
codigo: json['iCodigo'],
itemList: List<Itens>.from(json['stItens'].map((x) => Itens.fromJson(x))),
);
}
Map<String, dynamic> toMap() {
return {
'codigo': codigo,
'dataIni': dataIni,
'dataFin': dataFin,
'status': status
};
}
}
class Itens {
final int? id;
final int codigo;
late int quantidade;
late String? status;
final String codigoEAN;
Itens({
this.id,
this.status,
required this.codigo,
required this.codigoEAN,
required this.quantidade,
});
Map<String, dynamic> toJson(){
return {
'icodigo' : codigo,
'sCodigoBarras': codigoEAN,
'iQtd': quantidade
};
}
factory Itens.fromJson(Map<String, dynamic> json) {
return Itens(
codigo: json['iCodigo'],
codigoEAN: json['sCodigoBarras'],
quantidade: json['iQtd'],
);
}
Map<String, dynamic> toMap() {
return {
'id': id,
'status': status,
'codigo': codigo,
'codigoEAN': codigoEAN,
'quantidade': quantidade,
};
}
}

我试着把清单上的每一个项目都分开,但没能如愿。


Map<String, dynamic> toJSon(Coletas value) =>
{
'dtData' : dataIni,
'iCodigo': codigo,
'stItens': [],
};

要获得更好的结构-格式和使用,您可以查看flutter序列化文档:https://docs.flutter.dev/development/data-and-backend/json.

它解释了如何创建模型,以及如何根据定义的数据生成它们来创建fromJson和toJson模型。(https://docs.flutter.dev/development/data-and-backend/json#creating-型号类别-串行可串行(

它将帮助您解析、发送和接收数据。

我认为应该将Coletas指定为

Map<String, dynamic> toJSon(Coletas value) =>
{
'dtData' : value.dataIni,
'iCodigo': value.codigo,
'stItens': value.itemList,
};

最新更新