Javascript将PHP Json转换为javascript数组

时间:2012-12-21 17:49:46

标签: php javascript json

嗨,大家好,

让我们说清楚。在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

现在我问你,这怎么可能?

谢谢

3 个答案:

答案 0 :(得分:20)

听起来你在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); ?>;

答案 1 :(得分:7)

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

非常简单。 ; - )

示例:

<?php
  $myPhpArray = array('foo', 'bar', 'baz');
?>
<script type="text/javascript">
  var myJsArray = <?= json_encode($myPhpArray); ?>;
</script>

应输出(view-source):

<script type="javascript">
  var myJsArray = ["foo","bar","baz"];
</script>

Example

答案 2 :(得分: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>