【问题标题】:Javascript Convert PHP Json into a javascript arrayJavascript 将 PHP Json 转换为 javascript 数组
【发布时间】:2012-12-09 07:29:44
【问题描述】:

在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

这怎么可能?

【问题讨论】:

标签: php javascript json


【解决方案1】:

我推荐使用 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>

【讨论】:

    【解决方案2】:
    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>
    

    Example

    【讨论】:

    • 这给了我 javascript 数组?
    • 是的。它采用 PHP 变量并将其转换为 JavaScript 能够解析和存储的 JSON。
    • 作为解释,请注意 JSON(JavaScript 对象表示法)是 JavaScript 语言的 子集,因此可以被任何 JavaScript 解释器成功解析。
    • 确实,JSON!=JavaScript,它只是 JavaScript(和许多其他语言)可以翻译的数据的序列化表示。
    【解决方案3】:

    听起来您正在用 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); ?>;
    

    【讨论】:

    • 非常好。我教它是java脚本中的对象。感谢您的回答
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-06-21
    • 2014-12-20
    • 2011-08-02
    • 2011-08-02
    • 1970-01-01
    • 2018-12-16
    • 1970-01-01
    相关资源
    最近更新 更多