Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/233.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用jQuery访问JSON编码的多维数组_Php_Jquery_Json - Fatal编程技术网

Php 使用jQuery访问JSON编码的多维数组

Php 使用jQuery访问JSON编码的多维数组,php,jquery,json,Php,Jquery,Json,我有一个多维数组 $array = array( "Level1"=>array( "Level11"=>array( "level111"=>'value1', "level112"=>'value2', ), "Level12"=>array( "level121"=>'value1', "leve

我有一个多维数组

$array = array(
    "Level1"=>array(
        "Level11"=>array(
            "level111"=>'value1',
            "level112"=>'value2',
            ),
        "Level12"=>array(
            "level121"=>'value1',
            "level122"=>'value2',
            ),
        ),
    "Level2"=>array(
        "Level21"=>array(
            "level211"=>'value1',
            "level212"=>'value2',
            ),
        "Level22"=>array(
            "level221"=>'value1',
            "level222"=>'value2',
            ),
        )
    );
echo json_encode($array);
此编码的JSON是在使用jQuery接收AJAX POST请求后发送的

$.post(
    'mypage.php',
    {
        param1: value1,
        param2: value2
    },
    function(data) {
        //Now I can access the 1st level JSON value easily like
        alert(data.Level1); 

        // But

        // I am trying to access the values like 

        alert(data.Level1.Level11.level112); //which is not possible
    },
    "json"
);

如果您理解了我的问题,您知道我如何解决这个问题吗。

好的,我猜:您在PHP中的一些键中使用大写字母,但在JS中不使用大写字母。您的线路应该是:

data.Level1.Level11.level112
请注意,它是带有资本L的Level1,而不是Level1


为什么
data.level1.level11.level112不可能?您是否检查了
json\u encode()
生成的字符串?顺便说一句,即使是
data.level1
也不应该工作,因为密钥名为
level1
(大写字母L)。@Pekka,我不知道,该代码应该工作,但它没有工作@Felix Kling,是的,它可以作为数组进行访问,比如
dt=data.level1;i=dt['level11'][level112]
我刚刚创建了一个代码示例,我会马上更正它,我的实际代码中还有3个级别。对我来说是有效的:(JSON生成者),错误一定在其他地方。您应该在控制台上看到一些错误消息。@Starx:那么,您应该提供一个更好的示例。正如您在演示中看到的,这将是
json\u encode
生成的内容。我现在有点困惑,它在我的情况下不起作用,这意味着我肯定还遗漏了另一点。我去看看。Tnx,谢谢你给我演示。你确定PHP中编码的JSON与你的小提琴一模一样吗?@Starx:我复制并粘贴了它。但是,请确保您的服务器生成了正确的JSON。