4

Hi I have a JSON object that is a 2-dimentional array and I need to pass it to PHP using Ajax.Request (only way I know how). ...Right now I manually serialized my array using a js function...and get the data in this format: s[]=1&d[]=3&[]=4 etc. ....

my question is: Is there a way to pass the JSON object more directly/efficientely?..instead of serializing it myself?

Thanks for any suggestions, Andrew

Rob W
  • 315,396
  • 71
  • 752
  • 644

4 Answers4

5

Pass the object as a JSON-string to PHP, and in PHP use the builtin json_decode to get a PHP-object from the string.

In Javascript, use a "stringify" function on your object to get it as a string, library available for example here: https://github.com/douglascrockford/JSON-js/blob/master/json2.js

truppo
  • 23,583
  • 4
  • 35
  • 45
5

You can also use Prototype's function toJSON() to convert an array into a JSON object. After passing it to server via Ajax call, simply use PHP's function json_decode() to decode the object.

BenMorel
  • 30,280
  • 40
  • 163
  • 285
Prajwal Tuladhar
  • 513
  • 1
  • 4
  • 12
2

In que Javascript side (with Prototye):

var myJSON= Object.toJSON(youArray);

In que Php side:

$myjson = $_POST['myjson'];

$arrayJSON= json_decode(stripslashes($myjson), true);
Luis Melgratti
  • 11,101
  • 2
  • 27
  • 32
0

Check http://www.openjs.com/scripts/data/ued_url_encoded_data/ to encode nested data directly correct, since Object.toQueryString() doesn't accept nested data...

blavla
  • 542
  • 5
  • 4