Iam using http package to communicate with the server. How to send an list to php file in the server without json_encode in Dart with Flutter.

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));

My code above dont work, The problem is I need to write json_encode(ids) to send the data, and when I want to get the array/list in my php file I need to write json_decode($this->input->post('ids'))

How to solve it without json_encode and json_encode, how to send an json object which can accept arrays without any problem?


Solution 1: BambinoUA

I don't understand completely what is the problem with sending json but you may convert your list to string like:

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

Then send this string as payload of POST request to php script which can read value via _POST array (or your favorite way) and restore this serialized string to array:

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