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。