【发布时间】:2014-04-04 10:19:12
【问题描述】:
我在 php 中有一个这样的数组:
$array_php = (1,2,3,4,5);
在 JavaScript 中我会这样做:
var obj = <?php echo json_encode($array_php); ?>;
如果我这样做 alert(obj); 我可以毫无问题地获得内容:1,2,3,4,5
如果我这样做:
var elem = obj.split(',');
这失败了。例如,如果我做 alert(elem[1]) 我什么也得不到。并且 var elem = ... 行失败。
如果我创建没有 json_enconde 的数组可以正常工作,但我需要访问这个对象。
我能做什么? 谢谢!
【问题讨论】:
-
您可能需要执行以下操作:
var obj = JSON.parse(<?php echo json_encode($array_php); ?>);。 -
是的。我同意。因此,您可以使用
arr = $.pareseJSON(obj)遍历obj,在for循环中访问每个对象! -
@Andy:不。 JSON 是 JavaScript 文字符号的子集,因此如果您将其放入 JavaScript 源代码中,JavaScript 解析器可以直接处理它。 (事实上,如果您按照评论中的内容进行操作,您会收到解析错误,因为它会变成
JSON.parse([1,2,3,4,5]),它会在数组上触发toString,给我们JSON.parse("1,2,3,4,5"),因为"1,2,3,4,5"是无效的JSON 而失败.) -
@Andy:不,你不需要在 JS 上再次解析。当你使用 json_encode() 时,它会在 JS 获得 JSON 对象
-
我每天都在学习新东西。
标签: javascript php arrays split json