Json decode in javascript


Json decode in javascript

我已经在json对象中编码了我所需的数据,但是我想将json对象解码为javscript数组,我的json编码对象是:

{"product_id":"62","product_quantity":"65"}

但是我想在我的 Java 脚本中使用此 JSON 并希望它可用于 Java 脚本数组

所以如果我这样做:

var arr = new Array()
arr = <?php json_decode('$json_object',TRUE); ?>;

但是当我检查我的页面源代码时,我得到空,即 arr =如何将转换为数组的 JSON 对象分配给 Java 脚本数组?进一步如何从java脚本数组访问json对象?

json_decode返回一个PHP数据结构。如果你想把它序列化为JavaScript数据结构,你必须通过json_encode传递它(然后实际echo它返回的字符串)。

请注意,json_encode输出一个 JavaScript 数据结构,该结构可以安全地注入到 HTML 文档中的 <script> 元素中。并非所有的JSON都是安全的(PHP添加了额外的转义序列,并将转换纯字符串,数字,空值等(它们本身不是合法的JSON)。

请注意,如果您要立即将其他内容分配给arr,创建一个新数组并将其分配给arr也没有意义。

另请注意,'$json_object' 将为您提供一个字符串,以 $ 字符开头,然后是变量的名称。PHP 中的单引号字符串不插值。

var arr;
arr = <?php echo json_encode(json_decode($json_object,TRUE)); ?>;

另请注意,此 JSON :

{"product_id":"62","product_quantity":"65"}

将转换为 PHP 关联数组或 JavaScript 对象不是数组)。

所以给定这个 PHP:

<?php
    $json_object = '{"product_id":"62","product_quantity":"65"}';
?>
<script>
    var arr;
    arr = <?php echo json_encode(json_decode($json_object,TRUE)); ?>;
    alert(arr.product_id);
</script>

你会得到这个输出:

<script>
    var arr;
    arr = {"product_id":"62","product_quantity":"65"};
    alert(arr.product_id);
</script>

运行时会发出警报 62

您可以将 JSON 对象推送到 javascript 数组中并遍历数组,选择所需的适当字段。修复了它..

    var json = {"product_id":"62","product_quantity":"65"}; 
    var array = new Array();
    array.push(json);   
    for(var i = 0; i < array.length; i++){
       console.log(array[i].product_id)
    }

好的,开始吧:

在PHP中生成的json字符串可以在Javascript中用作对象。如果将变量声明为要开始的数组,则可能会发生冲突。

无论如何,这应该有效:

<?php 
$error_fields_structure = array(
     'product_id' => 4531
    ,'main_product_quantity' => 2
);
$json_object = json_encode($error_fields_structure);
?>
<html>
    <head>
        <script>
            var jsonstring = <?php echo (isset($json_object) ? $json_object : 'nothing here'); ?>
            for( var i in jsonstring ){
                alert( i +' == ' +jsonstring[i] );
            }
        </script>
    </head>
    <body>
    </body>
</html>