簡體   English   中英

漂亮的打印JSON無法正常工作

[英]Pretty printing JSON isn't working

我正在嘗試在PHP中漂亮地打印JSON,我查看了類似PHP的Pretty-Printing 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);
}

暫無
暫無

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

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