漂亮的打印JSON不起作用

我试图漂亮地打印目前在PHP中的JSON,我已经看过像PHP这样的漂亮打印JSON的线程,但它不工作。 我在PHP 7.0.8-0ubuntu0.16.04.3

码:

<form method="POST">
    <textarea name="json_data" id="json_data">
        <?php
            if(isset($_POST['json_data'])){
                echo json_encode($_POST['json_data'], JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES);
            }
        ?>
    </textarea>

    <input type="submit" value="Pretty Print JSON">
</form>

输出:

"[{"title":"The Chainsmokers - Closer (Lyric) ft. Halsey","length":262000,"id":"PT2_F-1esPk","requester":"158310004187725824","guildId":"226785954537406464"}]"

输入JSON

[{"title":"The Chainsmokers - Closer (Lyric) ft. Halsey","length":262000,"id":"PT2_F-1esPk","requester":"158310004187725824","guildId":"226785954537406464"}]

出于某种原因,选项JSON_PRETTY_PRINTJSON_UNESCAPED_SLASHES实际上不起作用。 这是为什么? 这些来自PHP 5.4,我在PHP 7上。


$_POST['json_data']已经是一个JSON字符串,所以你正在编码已编码的东西; 这基本上只是转义了字符串内的所有双引号,并且围绕结果包装了引号。 您需要先解码,然后用漂亮的打印对结果进行编码。

if (isset($_POST['json_data'])) {
    $data = json_decode($_POST['json_data']);
    echo json_encode($data, JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES);
}
链接地址: http://www.djcxy.com/p/47285.html

上一篇: Pretty printing JSON isn't working

下一篇: How do I pass constants in a function to be used by another function in PHP?