簡體   English   中英

PHP json_encode JSON_PRETTY_PRINT:如何打印不同的格式?

[英]PHP json_encode JSON_PRETTY_PRINT: how to print a different format?

我知道PHP提供了JSON_PRETTY_PRINT來格式化json數據。 如果我想要不同的格式怎么辦?

$message = array(
    "Open all day" => "Sundays,Saturdays,12-12-2013, 14-10-2013",

    "Availabilty" => array(
        "12/12/2013" => array(
            30,
            60,
            30,
            0
        ),
        "13/12/2013" => array(
            30,
            0,
            30,
            60,
        ),
    ),

);

$json = json_encode($message,JSON_PRETTY_PRINT);

結果,

{
    "Open all day": "Sundays,Saturdays,12-12-2013, 14-10-2013",
    "Availabilty": {
        "12\/12\/2013": [
            30,
            60,
            30,
            0
        ],
        "13\/12\/2013": [
            30,
            0,
            30,
            60
        ]
    }
}

但是我更喜歡,

{"Open all day":"
Sundays, 
Saturdays,
Fridays,
12/12/2013, 
14/10/2013, 
04/12/2013
",

"Availability":"
"12/12/2013":[30,60,30,0],
"13/12/2013":[30,60,30,0]
"}

那可能嗎? 也許一個正則表達式? 另外,我不想要那些反斜杠 - 它們可以被刪除嗎?

單獨使用json_encode是不可能獲得該格式的。

但是為了防止斜杠被轉義,您可以使用JSON_UNESCAPED_SLASHES常量:

$json = json_encode($message,JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES);

請參閱此處的文檔。

演示!

php有一些常量來確保json有效,因此建議始終使用這些常量來確保信息的完整性

http://www.php.net/manual/en/json.constants.php

如果你想使用沒有轉義反斜杠你可以,只要json格式很好,但不能保證,在某些時候,或某些系統拒絕你的json ...所以總是使用php提供的常量來確保信息的完整性。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM