繁体   English   中英

在PHP数组到JSON需要帮助

[英]Need help in php array to json

有一个数组

`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中使用JSON时,两者都没有给我定义。

好的,我已经这样使用了

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 =&undefined =

如果使用$ .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));

看来您正在将json编码的字符串回显到JavaScript中。 您可以执行此操作,而只需删除引号即可:

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

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

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

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

这将不起作用,因为parseJSON需要一个字符串作为参数。

因此解决方案将是:

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

请注意,它用引号引起来。

JSON.parse()期望参数为字符串。 通过用“单引号”将它括起来,使JSON数据成为字符串(因为您已经在JSON中使用了“双引号”)

使用parseJSON()

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM