簡體   English   中英

json_decode在php中不起作用

[英]json_decode not working in php

請檢查我下面的代碼,並讓我知道我做錯了什么,我只想解碼json並在瀏覽器上以數組形式打印

<?php

$json = '{
"Token" : "xxx-xxx-xxx",
"ID": "1",
"Recipients": [
    {
        "Recipient_ID": "XX",
        "From_Name": "XXX",
        "From_Email": "XXX",
        "To_Name": "XXX",
        "To_Email": "XXX",
        "Subject": "XXX",
        "Message": "XXX",
        "Attachments": [
            {
                "File_Name": "XXX",
                "File_Path": "XXX",
            }
        ],
    }
],
}';

$input = $json;
print_r(json_decode(stripslashes($input)));

?>

我嘗試使用此json字符串進行在線解碼( http://jsonviewer.stack.hu/ ),並且它可以正常工作,因此json字符串沒有問題。 任何幫助將不勝感激。

<?php

$json = '{
    "Token": "xxx-xxx-xxx",
    "ID": "1",
    "Recipients": [{
        "Recipient_ID": "XX",
        "From_Name": "XXX",
        "From_Email": "XXX",
        "To_Name": "XXX",
        "To_Email": "XXX",
        "Subject": "XXX",
        "Message": "XXX",
        "Attachments": [{
            "File_Name": "XXX",
            "File_Path": "XXX"
        }]
    }]
}';

$input = $json;
var_dump(json_decode(stripslashes($input)));

?>

問題出在您擁有的json格式上。您有一些需要刪除的',',這就是json_decode()無法完成工作的原因。 該函數引發錯誤異常,但是您應該做一些技巧來查看錯誤。 您可以使用此代碼查看錯誤。

switch (json_last_error()) {
    case JSON_ERROR_NONE:
        echo ' - No errors';
    break;
    case JSON_ERROR_DEPTH:
        echo ' - Maximum stack depth exceeded';
    break;
    case JSON_ERROR_STATE_MISMATCH:
        echo ' - Underflow or the modes mismatch';
    break;
    case JSON_ERROR_CTRL_CHAR:
        echo ' - Unexpected control character found';
    break;
    case JSON_ERROR_SYNTAX:
        echo ' - Syntax error, malformed JSON';
    break;
    case JSON_ERROR_UTF8:
        echo ' - Malformed UTF-8 characters, possibly incorrectly encoded';
    break;
    default:
        echo ' - Unknown error';
    break;
}

而且您的json應該是這樣的。

$json = '{
"Token" : "xxx-xxx-xxx",
"ID": "1",
"Recipients": [
    {
        "Recipient_ID": "XX",
        "From_Name": "XXX",
        "From_Email": "XXX",
        "To_Name": "XXX",
        "To_Email": "XXX",
        "Subject": "XXX",
        "Message": "XXX",
        "Attachments": [
            {
                "File_Name": "XXX",
                "File_Path": "XXX"
            }
        ]
    }
]
}';

暫無
暫無

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

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