JavaScript将PHP JSON转换为JavaScript数组

10

我在php中使用json_encode(...),然后在Javascript中取得值,代码如下:

["float","float","float","float"]  // PS: This is a string...

我希望将此转换为普通的 JavaScript 数组,如下所示:

Arr[0] // Will be float
Arr[1] // Will be float
Arr[2] // Will be float
Arr[3] // Will be float

这怎么可能实现?


如果您使用json_encode()将数组传回,则会得到一个数组,您可以按照您展示的方法对其进行索引... - scrappedcola
可能是将PHP数组传递给JavaScript函数的重复问题。 - Mohammed Azharuddin Shaikh
3个回答

26

听起来你正在使用JavaScript检索JSON字符串(可能通过AJAX?)。如果你需要将其转换为实际的数组值,你可能想要使用JSON.parse()

var retrievedJSON = '["float","float","float","float"]'; // normally from AJAX
var myArray = JSON.parse(retrievedJSON);

如果你实际上是将一个值写入页面,而不是使用AJAX,那么你应该可以直接输出json_encode的结果,而不需要加引号;JSON本身就是有效的JavaScript。

var myArray = <?php echo json_encode($myPhpArray); ?>;

非常好。我以为它是JavaScript中的对象。谢谢你的回答。 - ManiMuthuPandi

7
var myArray = <?= json_encode($myPhpArray); ?>;

相当简单。;-)
例子:
<?php
  $myPhpArray = array('foo', 'bar', 'baz');
?>
<script type="text/javascript">
  var myJsArray = <?= json_encode($myPhpArray); ?>;
</script>

应该输出(查看源代码):
<script type="javascript">
  var myJsArray = ["foo","bar","baz"];
</script>

示例


那会给我 JavaScript 数组? - Miguel P
是的。它将一个 PHP 变量转换为 JSON 格式,以便 JavaScript 可以解析和存储。 - Brad Christie
1
作为解释,值得注意的是JSON(JavaScript对象表示法)是JavaScript语言的子集,因此可以被任何JavaScript解释器成功解析。 - dualed
确实,JSON不等于JavaScript,它只是数据的序列化表示,JavaScript(以及许多其他语言)可以将其翻译成可读的格式。 - Brad Christie

2
我建议使用jQuery。PHP文件应该如下所示...
//location.php
<?php
$change = array('key1' => $var1, 'key2' => $var2, 'key3' => $var3);
echo json_encode($change);
?>

然后,jQuery脚本...
<script>
$.get("location.php", function(data){
var duce = jQuery.parseJSON(data);
var art1 = duce.key1;
var art2 = duce.key2;
var art3 = duce.key3;
});
</script>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接