flutter - 将列表发送到没有 json_encode 飞镖的服务器
问题描述
我正在使用http包与服务器通信。如何在使用 Flutter 的 Dart 中将列表发送到服务器中没有 json_encode 的 php 文件。
dynamic result = null;
List ids = [12, 65, 7];
Map data = {
'name': 'Mark',
'ids': ids,
};
var client = new http.Client();
await client.post('https://example.com/control/',
headers: {
"Accept": "application/json",
},
body: data,)
.then((response) => result = jsonDecode(response.body));
我上面的代码不起作用,问题是我需要编写json_encode(ids)
来发送数据,当我想在我的 php 文件中获取数组/列表时,我需要编写json_decode($this->input->post('ids'))
如何在没有 json_encode 和 json_encode 的情况下解决它,如何发送一个可以毫无问题地接受数组的 json 对象?
解决方案
我不完全理解发送 json 有什么问题,但您可以将列表转换为字符串,例如:
final idsSerialized = ids.map((id) => '$id').join(',');
然后将此字符串作为 POST 请求的有效负载发送到 php 脚本,该脚本可以通过 _POST 数组(或您喜欢的方式)读取值并将此序列化字符串恢复为数组:
$ids = explode($_POST['ids'], ',');
推荐阅读
- amazon-web-services - StarCluster VolumeCreator AWS instance_type
- javascript - 。地图(); 不显示完整数据
- python - 如何打印具有不同颜色的对象的坐标?Python3 OpenCV
- r - create a new variable in each iteration
- typescript - 给一个字符串一个类型
- c# - c# DataGridView DataTable 内部索引在并行循环中损坏
- css - vue cli 3 – 在样式标签中使用背景图片
- javascript - 谷歌浏览器扩展权限问题,带有谷歌文档(仅限)
- vb.net - 子报表增长到主报表不创建新页面
- android - TextView 中的水平居中文本不起作用