PHP 進行 JSON 編碼的常用參數

前言

當你使用 PHP 的時候,經常使用 json_encode 來將內容轉換為 JSON 格式,但有時候你可能對他輸出的內容有些不滿,例如說長得不好看,這篇文章就簡單紀錄下一些我常用的參數。

JSON_PRETTY_PRINT

一般情況下進行 json_encode 輸出,內容都會是黏在一起的,例如:

{"fruit":["apple","banana","lemon","watermelon"]}

如果你想攤開變成人看的樣子,你可以下 JSON_PRETTY_PRINT 這個參數,例如:

<?php
    $output = array();
    $output["fruit"][] = "apple";
    $output["fruit"][] = "banana";
    $output["fruit"][] = "lemon";
    $output["fruit"][] = "watermelon";
    echo json_encode($output, JSON_PRETTY_PRINT);

這樣他輸出的時候,就會變成這樣:

{
    "fruit": [
        "apple",
        "banana",
        "lemon",
        "watermelon"
    ]
}

JSON_UNESCAPED_UNICODE

當遇到中文字時,json_encode 經常會輸出成 Unicode 的結果,例如:

{"fruit":["\u860b\u679c","\u9999\u8549","\u6ab8\u6aac","\u897f\u74dc"]}

那想要讓他以正常的中文字輸出的話,就可以下 JSON_UNESCAPED_UNICODE 這個參數:

<?php
    $output = array();
    $output["fruit"][] = "蘋果";
    $output["fruit"][] = "香蕉";
    $output["fruit"][] = "檸檬";
    $output["fruit"][] = "西瓜";
    echo json_encode($output, JSON_UNESCAPED_UNICODE);

這樣輸出就能長出正常的中文字:

{"fruit":["蘋果","香蕉","檸檬","西瓜"]}

混合技

如果你想要中和以上兩種參數的話,則在參數跟參數中間下 | 就可以囉,例如:

<?php
    $output = array();
    $output["fruit"][] = "蘋果";
    $output["fruit"][] = "香蕉";
    $output["fruit"][] = "檸檬";
    $output["fruit"][] = "西瓜";
    echo json_encode($output, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE);

結果就會變成:

{
    "fruit": [
        "蘋果",
        "香蕉",
        "檸檬",
        "西瓜"
    ]
}