簡體   English   中英

JSON漂亮打印,無需在php中使用json_decode

[英]JSON pretty print without use json_decode in php

例如,我有這樣的json字符串(從頭開始)。 而且它沒有格式化。

{“ data”:[{“ id”:“ 14”,“ memo_kondisi”:“ Kekurangan pekerjaan”,“ total_row”:“ 5”,“ nilai_temuan”:“ 1.000.000”,“ data_sebab”:[{“ id “:” 15“,” id_sebab“:”“,” id_sub_sebab“:”“,” memo_sebab“:” coba“,” data_rekomendasi“:[{” id“:” 25“,” id_rekomendasi“:” 10“, “ id_sub_rekomendasi”:“”,“ id_s_sub_rekomendasi”:“”,“ nilai_rekomendasi”:“ 0”},{“ id”:“ 26”,“ id_rekomendasi”:“ 10”,“ id_sub_rekomendasi”:“”,“ id_s_sub_rekomendasi”:“” :“”,“ nilai_rekomendasi”:“ 0”},{“ id”:“ 31”,“ id_rekomendasi”:“ 10”,“ id_sub_rekomendasi”:“”,“ id_s_sub_rekomendasi”:“”,“ nilai_rekomendasi”:“ 0 “}]},{” id“:” 16“,” id_sebab“:”“,” id_sub_sebab“:”“,” memo_sebab“:” coba“,” data_rekomendasi“:[{” id“:” 34“, “ id_rekomendasi”:“ 10”,“ id_sub_rekomendasi”:“”,“ id_s_sub_rekomendasi”:“”,“ nilai_rekomendasi”:“ 0”},{“ id”:“ 35”,“ id_rekomendasi”:“ 10”,“ id_sub_rekomendasi”:“ 10” “:”“,” id_s_sub_rekomendasi“:”“,” nilai_rekomendasi“:” 0“}]}}}},{” id“:” 15“,” memo_kondisi“:” Kekurangan pekerjaan“,” total_row“:” 2“ ,“ nilai_temuan”:“ 1.000.000”,“ data_sebab”:[{“ id”:“ 5”,“ id_sebab”:“”,“ id_sub_sebab”:“”,“ memo_sebab”:“ coba”,“數據 _rekomendasi“:[]},{” id“:” 10“,” id_sebab“:”“,” id_sub_sebab“:”“,” memo_sebab“:” coba“,” data_rekomendasi“:[]}]},{” id“:” 16“,” memo_kondisi“:”“,” total_row“:” 2“,” nilai_temuan“:” 0“,” data_sebab“:[{” id“:” 9“,” id_sebab“:”“ ,“ id_sub_sebab”:“”,“ memo_sebab”:“ coba”,“ data_rekomendasi”:[]},{“ id”:“ 12”,“ id_sebab”:“”,“ id_sub_sebab”:“”,“ memo_sebab” :“ coba”,“ data_rekomendasi”:[]}]}]]}

我看到一些類似的問題,您必須使用json_decode ,我必須再次編碼並使用json_encode($json,JSON_PRETTY_PRINT)

有沒有一種方法可以使JSON可讀,而無需先解碼JSON並再次在PHP中對其進行編碼?

注意: 我希望結果仍然是JSON

只有解析器才能理解JSON,因此您可以執行建議的操作或編寫自己的解析器。 如果您有權訪問JSON的來源,請首先使其美觀。

並不是的。 使用其他人的解析器庫不會有任何區別,因為他們也會調用json_decode()

您可以創建一個可以調用的小函數:

function prettify($json)
{
    $array = json_decode($json, true);
    $json = json_encode($array, JSON_PRETTY_PRINT);
    return $json;
}

然后echo prettify($jsonString); 比不斷解碼和重新編碼要容易得多。 看到這里https://3v4l.org/CcJlf

暫無
暫無

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

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