使用JSON从PHP数组中获取数据

时间:2014-11-22 09:29:18

标签: php arrays json

我在这里读过类似的问题并尝试了一些没有运气的解决方案。

我尝试使用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数组中存储的字符串。

可能?我不是专业编码人员;)

2 个答案:

答案 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