我已经在json对象中编码了我需要的数据,但我想将json对象解码为javscript数组,我的json编码对象是:
{"product_id":"62","product_quantity":"65"}
Run Code Online (Sandbox Code Playgroud)
但是我想在我的java脚本中使用这个json,并希望它可用于java脚本数组
所以,如果我这样做:
var arr = new Array()
arr = <?php json_decode('$json_object',TRUE); ?>;
Run Code Online (Sandbox Code Playgroud)
但是,当我检查我的页面源我得到null即arr =如何将我转换为数组的json对象分配给java脚本数组?进一步如何从java脚本数组访问json对象?
json_decode返回PHP数据结构.如果要将其序列化为JavaScript数据结构,则必须将其传递json_encode(然后实际echo返回它的字符串).
请注意,json_encode输出一个JavaScript数据结构,可以安全地注入<script>HTML文档中的元素.并非所有JSON都可以安全地使用(PHP添加额外的转义序列,并将转换纯字符串,数字,空值等(它们本身不是合法的JSON).
请注意,arr如果要立即指定其他内容,创建新数组并将其分配给也是没有意义的arr.
另请注意,'$json_object'它将为您提供以字符开头的字符串$,然后是变量的名称.PHP中的单引号字符串不是内插的.
var arr;
arr = <?php echo json_encode(json_decode($json_object,TRUE)); ?>;
Run Code Online (Sandbox Code Playgroud)
还要注意这个JSON:
{"product_id":"62","product_quantity":"65"}
Run Code Online (Sandbox Code Playgroud)
将转换为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>
Run Code Online (Sandbox Code Playgroud)
你得到这个输出:
<script>
var arr;
arr = {"product_id":"62","product_quantity":"65"};
alert(arr.product_id);
</script>
Run Code Online (Sandbox Code Playgroud)
运行时会发出警报62.