Dou*_*ues 3 post json http dart flutter
我有用户将在表单中填写的对象。我将这些对象解析为 json 并将该 json 添加到列表中以传递请求正文。但我不能这样做。
\n\n incrementListPaymentSlipes(PaymentSlipes objPayment) async {\n objPayment.name = "Douglas";\n objPayment.personalId = "00000000000";\n Map<String, dynamic> json = objPayment.toJson();\n listPaymentSlipes.add(jsonEncode(json));\n }\nRun Code Online (Sandbox Code Playgroud)\n\nvar response = await http.post(url, body: {\n"payment_slips": listPaymentSlipes,\n}\nRun Code Online (Sandbox Code Playgroud)\n\n正确身体的例子:
\n\n"payment_slips": [\n { \n "personal_id": "01888728680",\n "name": "Fulano da Silva"\n }\n ]\nRun Code Online (Sandbox Code Playgroud)\n\n {"error":"\'{{personal_id: 00000000000, name: Douglas}}\' \xc3\x83\xc2\xa9 invalido como \'payment_slips\'","code":"payment_slips_invalid"}```\nRun Code Online (Sandbox Code Playgroud)\n
您可以用一种非常简单的方式做到这一点。创建payment.dart文件并复制粘贴以下代码类。
class PaymentList {
PaymentList(this.payments);
List<Payment> payments;
Map<String, dynamic> toJson() => <String, dynamic>{
'payment_slips': payments,
};
}
class Payment {
Payment({this.name, this.personalId});
String name;
String personalId;
Map<String, dynamic> toJson() => <String, dynamic>{
'personal_id': personalId,
'name': name,
};
}
Run Code Online (Sandbox Code Playgroud)
现在您可以使用以下代码将其转换为所需的 json 格式。例如,我正在创建一个虚拟列表:
final PaymentList paymentList =
PaymentList(List<Payment>.generate(2, (int index) {
return Payment(name: 'Person $index', personalId: '$index');
}));
final String requestBody = json.encoder.convert(paymentList);
Run Code Online (Sandbox Code Playgroud)
requestBody 变量将具有如下 json 字符串:
{"payment_slips": [
{
"personal_id": "0",
"name": "Person 0"
},
{
"personal_id": "1",
"name": "Person 1"
}
]}
Run Code Online (Sandbox Code Playgroud)
现在您可以调用 api:
var response = await http.post(url, body: requestBody}
Run Code Online (Sandbox Code Playgroud)
注意:请导入以下包,访问时需要该包json:
import 'dart:convert';
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13171 次 |
| 最近记录: |