如何将数组编码为JSON?

时间:2011-11-09 14:08:43

标签: php javascript json

我在JavaScript中有一个grossIncome的数组。这个数组包含6个元素。现在我想使用$.ajax方法将此数组发送到另一个PHP页面,但是如何以JSON格式对此数组进行编码?

4 个答案:

答案 0 :(得分:3)

使用JSON.stringify()(如果您想支持旧浏览器,则必须包含Douglas Crockford的this file):

$.ajax(
{
  "url": "some_script.php",
  "data": {json: JSON.stringify(gossIncome)},
  "success": function()
  {
    // Do something! 
  }
});

在PHP脚本中,您可以使用json_decode解码它:

<?php

$json = isset($_GET['json']) ? $_GET['json'] : exit('No JSON passed!');

$array = json_decode($json);

if ( json_last_error() != JSON_ERROR_NONE )
  exit('JSON invalid!');

?>

答案 1 :(得分:0)

尝试像json_encode();

http://phpjs.org/functions/json_encode:457

答案 2 :(得分:0)

数组在技术上已经在JSON中,虽然要通过HTTP传递给文件,但您希望序列化数据以将名称对值保持为字符串。幸运的是,jQuery有一个内置的param()方法。您可以像这样使用它:

$.ajax({
    url: 'path/to/file.php',
    type: 'POST',
    data: $.param(grossIncome),
    success: function(msg) {
        console.log(msg); // or whatever
    }
});

不幸的是,param()仅对对象映射形式的数组有用...即:

var grossIncome = {
    valueOne: "123",
    valueTwo: "321"
};

答案 3 :(得分:0)

这应该做的工作: http://www.openjs.com/scripts/data/json_encode.php

如果您使用jQuery或其他JS框架,请​​查看插件存储库,通常它们有一个JSON类来对数组/对象进行de /编码...