php页面中 为什么javascript JSON.parse返回的object长度未定义?
vartemp=JSON.parse('<?phpechojson_encode($arra)?>');alert(temp.length);--------------...
var temp=JSON.parse('<?php echo json_encode($arra) ?>');
alert(temp.length);
--------------------------这里弹窗显示未定义,我在chrome中调试显示如下:
var temp=JSON.parse('{"1":"1","2":"3","3":"3","4":"1","5":"4","6":"3"}');
--------------------------我的本意是想把这串字符转换成一个数组,请问如何解决? 展开
alert(temp.length);
--------------------------这里弹窗显示未定义,我在chrome中调试显示如下:
var temp=JSON.parse('{"1":"1","2":"3","3":"3","4":"1","5":"4","6":"3"}');
--------------------------我的本意是想把这串字符转换成一个数组,请问如何解决? 展开
1个回答
展开全部
js中Object 没有提供length属性,只能通过循环对象属性来创建一个新数组
var temp = JSON.parse('{"1":"1","2":"3","3":"3","4":"1","5":"4","6":"3"}');
var tempArr = [];
for (var i in temp) {
tempArr[i] = temp[i]
}
alert(tempArr.length)
然后,重点是你PHP的$arra是值对数组吗?如果键名没用的话你直接用array_values就行了
<?php $arra = ["1" => 1, "2" => 3, "3" => 3, "4" => 1, "5" => 4, "6" => 3] ?>
var temp = JSON.parse('<?php echo json_encode(array_values($arra)) ?>');
alert(temp.length)
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询