我有一个从javascript页面接收json对象的php页面,但我无法解码php中的json。如何解码json并在php中存储,以便$ arr [0] = [1,2,34,5,2]; $ ARR [1] = [2,1,34,5,2]; $ ARR [2] = [8,1,34,5,2];在PHP吗?
after removing "myString = JSON.stringify(myObject);"
echo $value; outputs "Array"
echo $value[0]; outputs nothing
echo $value->{"key"}; outputs nothing either
how can i actually get the array contents?
的javascript:
var mon=[1,2,34,5,2];
var tue=[2,1,34,5,2];
var wed=[8,1,34,5,2];
var myObject = {'key' :'value','key2':'value','key3':'value'};
myObject.key = mon;
myObject.key2 = tue;
myObject.key3 = wed;
myString = JSON.stringify(myObject); //this line removed
var jsonString = JSON.stringify(myObject);
$.ajax({
type: "POST",
url: "n3.php",
data: {data : jsonString},
cache: false,
success: function(aaa){
alert("OK");
$("#pageContent").html(aaa);
}
});
PHP:
<?php
$value = json_decode($_POST['data']);
echo $value; //this echos the whole json object
echo $value->{"key"}; //this outputs nothing
?>
答案 0 :(得分:2)
您在Javascript端对JSON进行了两次编码。当您在PHP中调用json_encode
一次时,您将获得一个JSON编码对象。这就是echo $value
输出整个字符串的原因。如果此时它是一个PHP数组,它将输出&#34;数组&#34;或者如果它是一个对象的错误,它将不会输出整个内容。
再次json_decode
,或者不要在Javascript中对其进行双重编码。