php解码json数组

时间:2014-04-10 07:20:44

标签: javascript php arrays json

我有一个从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
?>

1 个答案:

答案 0 :(得分:2)

您在Javascript端对JSON进行了两次编码。当您在PHP中调用json_encode一次时,您将获得一个JSON编码对象。这就是echo $value输出整个字符串的原因。如果此时它是一个PHP数组,它将输出&#34;数组&#34;或者如果它是一个对象的错误,它将不会输出整个内容。

再次json_decode,或者不要在Javascript中对其进行双重编码。