我已经在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>