flutter - 如何将 json 列表传递给 Flutter 中的 http Post 请求正文?
问题描述
我有将由用户在表单中填写的对象。我将这些对象解析为 json 并将该 json 添加到列表中以传入请求正文。但我不能这样做。
submitQuestions() async {
var headers = {
'Content-Type': 'application/json',
'x-auth-token': '123edrfe33ewed'
};
var request = http.Request('POST', Uri.parse('url'));
request.body = json.encode({
"school_id": "123",
"teacher_id": "123",
"observer_id": "123",
"subject_id": "123",
"subject_name": "abc",
"class_id": "123",
"batch_id": "123",
"topic": "topic",
"academic_year": "2019-2020",
"remarks_data": [
{
"_id": "123",
"heading": "heading",
"Indicators": [
{
"name": "abc",
"_id": "123",
"remark": "abc",
"point": 4
},
{
"name": "abc",
"_id": "123",
"remark": "abc",
"point": 1
}
]
},
{
"_id": "123",
"heading": "abc",
"Indicators": [
{
"name": "abc",
"_id": "123",
"remark": "abc",
"point": 3
}
]
}
]
});
request.headers.addAll(headers);
http.StreamedResponse response = await request.send();
if (response.statusCode == 200) {
print(await response.stream.bytesToString());
}
else {
print(response.reasonPhrase);
}
}
当问题数量增加时,这个 json 会动态变化。我不能像这样将这个 json 文件放在正文中。如何做到这一点。
解决方案
请求正文尝试使用Map
数据类型。您可以创建一个模型类来处理它。
例子
class School {
String school_id;
String teacher_id;
String observer_id;
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['school_id'] = this.school_id;
data['teacher_id'] = this.teacher_id;
data['observer_id'] = this.observer_id;
...
return data;
}
}
/// Make sure your _school got data
School _school;
request.body = _school.toJson();
推荐阅读
- python - 如何将浮点数四舍五入到小数点后三位?
- c++ - 将帕斯卡转换为 C++,我不知道帕斯卡
- javascript - 如何访问黄瓜“步骤”对象的 json 的所有“文本”属性并将它们记录到控制台?
- java - 从firebase android中的onSuccessListener返回自定义ArrayList
- python - 如何解决vscode中CodeRunner的输出问题?
- ubuntu - Kubernetes 集群内部没有解析外部 DNS 请求
- r - R:从字符向量中提取最后几位数字
- java - Java Swing:有没有办法在每次鼠标移动时都检查 MouseOver 的绘制形状?
- laravel - Laravel JSON 分页:如何从下一个/上一个链接中删除箭头?
- html - 限制 svg 路径中的点数