Php javascript中的Json解码

Php javascript中的Json解码,php,arrays,json,Php,Arrays,Json,我已将所需数据编码到json对象中,但我想将json对象解码到javscript数组中,我的json编码对象是: {"product_id":"62","product_quantity":"65"} 但是,我希望在java脚本中使用此json,并希望它可用于java脚本数组 因此,如果我这样做: var arr = new Array() arr = <?php json_decode('$json_object',TRUE); ?>; var arr=new Array()

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

{"product_id":"62","product_quantity":"65"}
但是,我希望在java脚本中使用此json,并希望它可用于java脚本数组

因此,如果我这样做:

var arr = new Array()
arr = <?php json_decode('$json_object',TRUE); ?>;
var arr=new Array()
arr=;
但是,当我检查我的页面源时,我得到null,即arr= 如何将转换为数组的json对象分配给java脚本数组?
进一步了解如何从java脚本数组访问json对象?

json\u decode
返回一个PHP数据结构。如果要将其序列化为JavaScript数据结构,则必须将其通过
json\u encode
(然后实际上是
echo
返回的字符串)

请注意,
json\u encode
输出一个JavaScript数据结构,可以安全地注入HTML文档中的
元素。并非所有的JSON都可以安全地使用(PHP添加了额外的转义序列,并将转换普通字符串、数字、空值等(这些本身不是合法的JSON)

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

还请注意,
'$json\u object'
将为您提供一个以
$
字符开头的字符串,然后是变量的名称。PHP中的单引号字符串不会插入

var arr;
arr = <?php echo json_encode(json_decode($json_object,TRUE)); ?>;
将转换为PHP关联数组或JavaScript对象(不是数组)

因此,考虑到这一点:

<?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>

var-arr;
arr=;
警报(arr.product\U id);
您将获得以下输出:

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

var-arr;
arr={“产品标识”:“62”,“产品数量”:“65”};
警报(arr.product\U id);

运行时会发出警报。

json\u decode
返回一个PHP数据结构。如果要将其序列化为JavaScript数据结构,则必须将其通过
json\u encode
(然后实际上是
echo
返回的字符串)

请注意,
json\u encode
输出一个JavaScript数据结构,可以安全地注入HTML文档中的
元素。并不是所有的json都可以安全地使用它(PHP添加了额外的转义序列,并将转换普通字符串、数字、空值等(它们本身不是合法的json)

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

还请注意,
'$json\u object'
将为您提供一个以
$
字符开头的字符串,然后是变量的名称。PHP中的单引号字符串不会插入

var arr;
arr = <?php echo json_encode(json_decode($json_object,TRUE)); ?>;
将转换为PHP关联数组或JavaScript对象(不是数组)

因此,考虑到这一点:

<?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>

var-arr;
arr=;
警报(arr.product\U id);
您将获得以下输出:

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

var-arr;
arr={“产品标识”:“62”,“产品数量”:“65”};
警报(arr.product\U id);

运行时会发出警报。

您可以将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)
    }
var json={“产品标识”:“62”,“产品数量”:“65”};
var数组=新数组();
array.push(json);
对于(var i=0;i
您可以将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)
    }
var json={“产品标识”:“62”,“产品数量”:“65”};
var数组=新数组();
array.push(json);
对于(var i=0;i
好的,首先:

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>

var jsonstring=
for(jsonstring中的变量i){
警报(i+'='+jsonstring[i]);
}

好的,首先:

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>

var jsonstring=
for(jsonstring中的变量i){
警报(i+'='+jsonstring[i]);
}

ok,即使我只是直接分配arr=我似乎无法访问arrayQuentin我尝试了,但在页面源代码中,我还是得到了arr,因为nullwill不会
echo json\u encode(json\u decode($json\u object,TRUE))
echo$json_object;
?@DaveRandom相同-对于示例中的特定输入,它将是。请注意我关于PHP添加额外转义的评论(答案的第2段)。如果输入是
{“product_id”:“62”,“product_数量”:“}
那么输出将是
{“product_id”:“62”,“product_数量”:“}
。如果您将前一块JSON直接放入
元素,它将终止脚本的中间表达式。好的,即使我直接分配arr=我似乎无法访问arrayQuentin,我尝试了,但仍然在页面源代码中,我得到了arr,因为null不会
响应JSON\u编码(JSON\u解码($JSON\u对象,TRUE));
echo$json_object;
?@DaveRandom相同-对于示例中的特定输入,它将是。请注意我关于PHP添加额外转义的评论(答案的第2段)。如果输入是
{“product_id”:“62”,“product_quantity”:“}
那么输出将是
{“product_id”:“62”,“product_qua