8

在我使用的 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

这怎么可能?

4

3 回答 3

23

听起来您正在用 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); ?>;
于 2012-12-21T17:52:52.677 回答
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>

例子

于 2012-12-21T17:50:57.337 回答
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>
于 2014-01-29T09:14:08.743 回答