簡體   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