作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一些对象将由用户填写在表单中。我将这些对象解析为 json 并将该 json 添加到列表中以传递请求正文。但我不能这样做。
incrementListPaymentSlipes(PaymentSlipes objPayment) async {
objPayment.name = "Douglas";
objPayment.personalId = "00000000000";
Map<String, dynamic> json = objPayment.toJson();
listPaymentSlipes.add(jsonEncode(json));
}
var response = await http.post(url, body: {
"payment_slips": listPaymentSlipes,
}
正确正文示例:
"payment_slips": [
{
"personal_id": "01888728680",
"name": "Fulano da Silva"
}
]
{"error":"'{{personal_id: 00000000000, name: Douglas}}' é invalido como 'payment_slips'","code":"payment_slips_invalid"}```
最佳答案
你可以用一种非常简单的方式来做到这一点。创建 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,
};
}
现在您可以使用以下代码将其转换为所需的 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);
requestBody 变量将具有如下 json 字符串:
{"payment_slips": [
{
"personal_id": "0",
"name": "Person 0"
},
{
"personal_id": "1",
"name": "Person 1"
}
]}
现在你可以调用 api 了:
var response = await http.post(url, body: requestBody}
注意:请导入以下包,访问json
需要:
import 'dart:convert';
关于json - 如何将 json 列表传递给 Flutter 中的 http 请求(post)主体?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58084921/
我是一名优秀的程序员,十分优秀!