简体   繁体   English

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

[英]JSON pretty print without use json_decode in php

For example i have json strings like this ( from the first place ). 例如,我有这样的json字符串(从头开始)。 And It's not formatted. 而且它没有格式化。

{"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":"","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","data {“ 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":[]}]}]} _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”:[]}]}]]}

I see some similar question that you have to use json_decode and i have to encode again and using json_encode($json,JSON_PRETTY_PRINT) 我看到一些类似的问题,您必须使用json_decode ,我必须再次编码并使用json_encode($json,JSON_PRETTY_PRINT)

Is there a way for make json readable without decode the JSON first and encode it again in PHP ? 有没有一种方法可以使JSON可读,而无需先解码JSON并再次在PHP中对其进行编码?

Note : I expect the result is still in JSON 注意: 我希望结果仍然是JSON

Only a parser can understand the JSON, so you can either do what you proposed or write your own parser. 只有解析器才能理解JSON,因此您可以执行建议的操作或编写自己的解析器。 If you have access to the origin of the JSON, make it pretty in the first place. 如果您有权访问JSON的来源,请首先使其美观。

Not really. 并不是的。 Using someone else's parser lib won't make any difference, as they'll call json_decode() too. 使用其他人的解析器库不会有任何区别,因为他们也会调用json_decode()

You could create a little function that you could call: 您可以创建一个可以调用的小函数:

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

Then echo prettify($jsonString); 然后echo prettify($jsonString); would be easier than constantly decoding and re-encoding. 比不断解码和重新编码要容易得多。 See here https://3v4l.org/CcJlf 看到这里https://3v4l.org/CcJlf

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM