前言
當你使用 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": [
"蘋果",
"香蕉",
"檸檬",
"西瓜"
]
}