我在JavaScript中有一个grossIncome
的数组。这个数组包含6个元素。现在我想使用$.ajax
方法将此数组发送到另一个PHP页面,但是如何以JSON格式对此数组进行编码?
答案 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();
答案 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 /编码...