我在这里读过类似的问题并尝试了一些没有运气的解决方案。
我尝试使用var jQuery_my_array = <?php echo json_encode($my_array); ?>;
转换。
我知道这会返回一个名为jQuery_my_array
的有效数组,但我无法正确获取数组内容。
我也试过
var jQuery_my_array = <?php echo json_encode($my_array); ?>;
var jQuery_my_array_parsed = JSON.parse(jQuery_my_array);
alert(jQuery_my_array_parsed[2]);
我想做alert(jQuery_my_array[2][0]);
之类的事情并获取我在php数组中存储的字符串。
可能?我不是专业编码人员;)
答案 0 :(得分:0)
无需JSON.parse
试试这个
<?php
$my_array = array("sone"=>12, "sss"=>45);
?>
<script>
var jQuery_my_array = <?php echo json_encode($my_array); ?>;
console.log(jQuery_my_array);
</script>
以上输出为Object {sone: 12, sss: 45}
您可以将这些用作jQuery_my_array.sone
;
如果你的php数组像$my_array = array(12, "sss", 45);
然后可以使用json作为console.log(jQuery_my_array[0])
;
答案 1 :(得分:0)
您遇到的问题是由于您尝试json_encode对象数组。为此,您需要将这些对象转换为数组,这可以通过实现JsonSerializable
接口来完成:
class imageObject implements JsonSerializable {
// your object code
public function jsonSerialize() {
// one implementation. You could also only return those values you actually need
return get_object_vars($this);
}
}
然后在你的javascript:
var jQuery_my_array = <?php echo json_encode($my_array); ?>;
console.log(jQuery_my_array_parsed);
使用console.log,而不是警报。要查看console.log语句的输出,请打开javascript console