Лучший способ передать JSON из браузера в PHP с помощью Ajax.Request
Привет, у меня есть объект JSON, который является двухмерным массивом, и мне нужно передать его в PHP с помощью Ajax.Request (только так, как я знаю, как). ... Прямо сейчас я вручную сериализовал свой массив с помощью функции js... и получил данные в следующем формате: s[]=1&d[]=3&[]=4 и т. Д.....
мой вопрос: есть ли способ передать объект JSON более прямо / эффективно?.. вместо того, чтобы сериализовать его сам?
Спасибо за любые предложения, Андрей
4 ответа
Вы также можете использовать функцию Prototype toJSON() для преобразования массива в объект JSON. После передачи его на сервер с помощью вызова Ajax просто используйте функцию PHP json_decode() для декодирования объекта.
Передайте объект в виде JSON-строки в PHP, а в PHP используйте встроенный json_decode для получения PHP-объекта из строки.
В Javascript используйте функцию "stringify" для вашего объекта, чтобы получить его в виде строки, библиотека доступна, например, здесь: https://github.com/douglascrockford/JSON-js/blob/master/json2.js
На стороне Javascript (с прототами):
var myJSON= Object.toJSON(youArray);
На стороне Php:
$myjson = $_POST['myjson'];
$arrayJSON= json_decode(stripslashes($myjson), true);
Проверьте http://www.openjs.com/scripts/data/ued_url_encoded_data/ для правильного кодирования вложенных данных, поскольку Object.toQueryString() не принимает вложенные данные...