需要帮助php数组到json

时间:2013-08-09 08:12:43

标签: php javascript jquery

有一个数组

`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 =

5 个答案:

答案 0 :(得分:4)

如果您使用$ .parseJSON()-function,则可解析数据应为字符串:

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));

答案 1 :(得分:2)

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

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

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

答案 2 :(得分:1)

在你展示你的代码之前,我假设这就是你所做的:

var object = $.parseJSON(<?php echo json_encode($array)?>);

并且这不起作用,因为parseJSON期望字符串作为参数。

所以解决方案将是:

var object = $.parseJSON('<?php echo json_encode($array)?>');

请注意,它被引号括起来。

答案 3 :(得分:0)

JSON.parse()期望参数为字符串。通过用“单引号”包围它来使你的JSON数据成为一个字符串(因为你已经在JSON中使用了“双引号”)

答案 4 :(得分:0)

使用parseJSON()

done(function (jsonresponse) {
var obj = $.parseJSON(jsonresponse);        
console.log(obj);
};