Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/404.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
需要php数组到json的帮助吗_Php_Javascript_Jquery - Fatal编程技术网

需要php数组到json的帮助吗

需要php数组到json的帮助吗,php,javascript,jquery,Php,Javascript,Jquery,有阵列的 `Array ( [0] => Array ( [operative] => 2 [start] => 01:00:00 [end] => 13:00:00 [color] => 543939 ) [1] => Array ( [operative] =>

有阵列的

`Array
(
    [0] => Array
        (
            [operative] => 2
            [start] =>  01:00:00
            [end] =>  13:00:00
            [color] => 543939
        )

    [1] => Array
        (
            [operative] => 3
            [start] =>  08:00:00
            [end] =>  09:00:00
            [color] => 52e612
        )

)

`
需要将其转换为JSON,所以我使用JSON_encode,我得到一个字符串[{operative:2,start:01:00:00,end:13:00:00,color:543939},{operative:3,start:08:00:00,end:09:00:00,color:52e612}]

但当我通过函数$.parseJSON或JSON.parse将JSON用于JavaScript时,这两个函数都给出了未定义的值

好的,我是这样用的

options1 = '[{"operative":"2","start":" 01:00:00","end":" 13:00:00","color":"543939"},{"operative":"3","start":" 08:00:00","end":" 09:00:00","color":"52e612"}]'
options1 = $.parseJSON(options1);
alert($.param(options1));

但警报显示我未定义=&undefined=

如果您使用的是$.parseJSON-函数,则可解析的数据应为字符串:

var json = '[{"operative":"2","start":" 01:00:00","end":" 13:00:00","color":"543939"},{"operative":"3","start":" 08:00:00","end":" 09:00:00","color":"52e612"}]';

console.log($.parseJSON(json));

JSON.parse要求参数为字符串。在JSON数据周围加上“单引号”,使其成为字符串,因为在显示代码之前,您已经在JSON中使用了双引号

var object = $.parseJSON(<?php echo json_encode($array)?>);
请注意,它被引号括起来。

使用


看起来您正在将json编码的字符串回显到javascript中。您可以这样做,只需去掉引号:

var options = <?= json_encode($array); ?>;

JSON是JavaScript对象表示法的首字母缩写。将其回显到JS脚本中会产生有效的javascript数组和对象文本。根本不需要解析它。

给我们您的javascript代码。您是否用引号括起来了?请确保您检索的数据实际上是json字符串,只不过是console.log而已。您的json本身是有效的,因此如果您将该字符串作为参数传递,$.parseJSON数据应该返回一个数组。var data=;我不认为警报需要两个参数但是。。。如果JSON实际上是一个JavaScript代码,为什么要解析它呢?只需执行var data=;,不需要解析!或者保留引号,不解析有效的JSON。JavaScript对象表示法是有效的JavaScript,只需无引号地回显它!
done(function (jsonresponse) {
var obj = $.parseJSON(jsonresponse);        
console.log(obj);
};
var options = <?= json_encode($array); ?>;