首页 > 解决方案 > 将列表发送到没有 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 对象?

标签: flutterdart

解决方案


我不完全理解发送 json 有什么问题,但您可以将列表转换为字符串,例如:

final idsSerialized = ids.map((id) => '$id').join(',');

然后将此字符串作为 POST 请求的有效负载发送到 php 脚本,该脚本可以通过 _POST 数组(或您喜欢的方式)读取值并将此序列化字符串恢复为数组:

$ids = explode($_POST['ids'], ',');

推荐阅读