拆分不';不能在JavaScript中使用json_编码

拆分不';不能在JavaScript中使用json_编码,javascript,php,arrays,split,json,Javascript,Php,Arrays,Split,Json,我有一个php数组,如下所示: $array_php = (1,2,3,4,5); 在JavaScript中,我会: var obj = <?php echo json_encode($array_php); ?>; 这是失败的。例如,如果我发出警报(elem[1]),我什么也得不到。行var elem=。。。失败了 如果我在不使用json_enconde的情况下创建数组,效果很好,但是我需要访问这个对象 我能做什么? 谢谢 警报(obj)将数组转换为字符串。JavaScript

我有一个php数组,如下所示:

$array_php = (1,2,3,4,5);
在JavaScript中,我会:

var obj = <?php echo json_encode($array_php); ?>;
这是失败的。例如,如果我发出警报(elem[1]),我什么也得不到。行var elem=。。。失败了

如果我在不使用json_enconde的情况下创建数组,效果很好,但是我需要访问这个对象

我能做什么? 谢谢

警报(obj)
将数组转换为字符串。JavaScript中的数组到字符串转换基本上是通过
this.join(“,”
(不完全正确,但足够接近)完成的

你不必做任何事情来
obj
使它成为一个数组,它是一个数组!所以只要访问
alert(obj[1])
,就会得到
2

alert(obj)
将数组转换为字符串。JavaScript中的数组到字符串转换基本上是通过
this.join(“,”
(不完全正确,但足够接近)完成的


你不必做任何事情来
obj
使它成为一个数组,它是一个数组!所以只要访问
alert(obj[1])
,您就会得到
2

这不是一个PHP数组。你的意思是
数组(1,2,3,4,5)

像这样使用
json\u encode
会创建一个带有JavaScript对象或数组文本的字符串,但由于您将其直接输出到JavaScript中,因此它不是字符串,而是JavaScript中的数组。查看生成的源代码。它将是:

var obj = [1, 2, 3, 4, 5];
不是

而且也不是

var obj = "1, 2, 3, 4, 5";
因此,您不需要拆分它(没有要拆分的字符串)。只需直接访问对象(在本例中为数组):

alert(obj[0]); // Shows 1

提示:不要使用
alert()
进行调试。改用
console.log()
并查看控制台。在这里更容易看到它是一个数组而不是字符串。

这不是一个PHP数组。你的意思是
数组(1,2,3,4,5)

像这样使用
json\u encode
会创建一个带有JavaScript对象或数组文本的字符串,但由于您将其直接输出到JavaScript中,因此它不是字符串,而是JavaScript中的数组。查看生成的源代码。它将是:

var obj = [1, 2, 3, 4, 5];
不是

而且也不是

var obj = "1, 2, 3, 4, 5";
因此,您不需要拆分它(没有要拆分的字符串)。只需直接访问对象(在本例中为数组):

alert(obj[0]); // Shows 1

提示:不要使用
alert()
进行调试。改用
console.log()
并查看控制台。在这里,更容易看到它是一个数组而不是一个字符串。

您可能需要执行如下操作:
var obj=JSON.parse()。是的。我同意。因此,您可以使用
arr=$.pareseJSON(obj)
迭代
obj
,访问
for
循环中的每个对象@安迪:没有。JSON是JavaScript文字符号的一个子集,因此如果将其放入JavaScript源代码中,JavaScript解析器可以直接处理它。(事实上,如果你做了你评论中的事情,你会得到一个解析错误,因为它会变成
JSON.parse([1,2,3,4,5])
,它会在给我们
JSON.parse(“1,2,3,4,5”)
的数组上触发
toString
,解析(“1,2,3,4,5”)
,失败是因为
“1,2,3,4,5”是无效的JSON。)@Andy:不,你不需要在JS上再次解析。当你使用JSON_encode()时,它会在JS上得到JSON对象,我每天都会学到一些新东西。是的。我同意。因此,您可以使用
arr=$.pareseJSON(obj)
迭代
obj
,访问
for
循环中的每个对象@安迪:没有。JSON是JavaScript文字符号的一个子集,因此如果将其放入JavaScript源代码中,JavaScript解析器可以直接处理它。(事实上,如果你做了你评论中的事情,你会得到一个解析错误,因为它会变成
JSON.parse([1,2,3,4,5])
,它会在给我们
JSON.parse(“1,2,3,4,5”)
的数组上触发
toString
,解析(“1,2,3,4,5”)
,失败是因为
“1,2,3,4,5”是无效的JSON。)@Andy:不,你不需要在JS上再次解析。当您使用JSON_encode()时,它将在JS上获得JSON对象。我每天都会学到一些新东西。“提示:不要使用alert()进行调试。请使用console.log()相反…提示:不要使用
console.log
进行调试。使用调试器进行调试。浏览器中内置了一个调试器,它可以让您单步执行代码、检查变量等:-)+1获得出色的信息(包括该提示)。“提示:不要使用alert()进行调试。请改用console.log()。。。提示:不要使用
console.log
进行调试。使用调试器进行调试。有一个内置在浏览器中,它允许您单步浏览代码、检查变量等:-)1以获得出色的信息(包括提示)。