繁体   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