嘿伙计们,我真的需要帮助。我将这个 json 对象传递给 php..
var x = {};
x.xt = {};
x.xt.id = id;
x.xt.to = foo;
somearray.push(x);
对象转json:
$.toJSON(x);
json字符串:
[{"x":{"xt":"9","to":"2"}}]
他们我发布了这个:
$.post(
"temp/sop.php",
{ xa: somearray},
function(data){
console.log("response - "+ data);
});
服务器端:
$xtj = $_POST["xa"];
$encodedArray = array_map(utf8_encode, $xtj);
$asnk = json_decode($encodedArray);
返回:
string(4) "null"
还有这个:
$asnk = json_encode($xtj);
返回:
null
它设置的数据库:
UTF8
同样当我测试它是否是一个数组时,返回 true..
知道如何解决这个问题吗?谢谢
还有服务器端:
$xtj = $_POST["xa"];
$asnk = json_decode($xtj);
返回:
NULL
最佳答案
$.toJSON(x)
不会就地进行转换;它返回 JSON,而您只是丢弃它。你需要这个:
$.post(
"temp/sop.php",
{ xa: $.toJSON(somearray) },
// ...
});
然后,在 PHP 端,您不需要 array_map
,因为在您解码 JSON 之前它不会是一个数组:
$xtj = $_POST["xa"];
$encodedArray = utf8_encode($xtj); // I'm not sure you need this, by the way.
$asnk = json_decode($encodedArray);
关于php - javascript 对象到 json 字符串到 php 数组 -> POST,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15856997/