PHP - 在網頁裏格式化輸出(打印)JSON字符串

在進行接口調試或接口說明時,常常需要把接口返回的JSON數據以一種友好、易讀的方式進行展現。
下面介紹一種在網頁裏格式化輸出(打印)JSON字符串的簡單方式。

原始字符串

原始字符串需要符合JSON要求的標準格式,可以包含中文,如:

//原始字符串,JSON格式
$origin_str = '{"code":200,"data":[{"color":"red","name":"紅色","rgb":"ff0000"}, {"color":"green","name":"綠色","rgb":"00ff00"},{"color":"blue","name":"藍色","rgb":"0000ff"}]}';

對原始字符串重新進行編解碼

分別使用 json_decode()json_encode() 方法對原始字符串進行一次解碼和編碼操作,重新生成JSON字符串。
表面上看,重新生成的字符串和原始字符串沒有什麼不同,但如果跳過直接進行下一步,無法得到最終的格式化輸出效果。

//對原始字符串進行解碼,轉換爲PHP對象或數組
$json_obj = json_decode($origin_str);

//對PHP對象或數組重新進行JSON編碼,生成新的字符串
//默認情況下,字符串中的中文會進行Unicode編碼
$json_str = json_encode($json_obj);

echo $json_str;

此時的頁面輸出效果:
在這裏插入圖片描述

格式化輸出

有兩個要點:

  • json_encode() 增加 JSON_UNESCAPED_UNICODEJSON_PRETTY_PRINT 兩個配置參數
  • 把打印內容放在 <pre> 標籤中

最終代碼如下:

//原始字符串,JSON格式
$origin_str = '{"code":200,"data":[{"color":"red","name":"紅色","rgb":"ff0000"},{"color":"green","name":"綠色","rgb":"00ff00"},{"color":"blue","name":"藍色","rgb":"0000ff"}]}';

//對原始字符串進行解碼,轉換爲PHP對象或數組
$json_obj = json_decode($origin_str);

//對PHP對象或數組重新進行JSON編碼,生成新的字符串
//默認情況下,字符串中的中文會進行Unicode編碼
//多個配置參數之間,用豎線分隔
$json_str = json_encode($json_obj, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT);

//頁面輸出
echo '<pre>';
echo $json_str;
echo '</pre>';

最終頁面輸出效果:
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章