簡體   English   中英

PHP ECHO到JSON結果= JSON.parse:JSON數據第1行第2列的預期屬性名稱或'}'

[英]PHP ECHO to JSON result = JSON.parse: expected property name or '}' at line 1 column 2 of the JSON data

我從php = echo "{success: true, redirect: '/home', auth_key:'$auth_key'}";

並嘗試解析它,但是遇到錯誤=

JSON.parse:JSON數據的第1行第2列中的預期屬性名稱或“}”

我嘗試了jQuery解析和普通的json.parse方法

$.ajax({

    type: "POST",
    url: "/login/process",
    data: user,
    success: function (response) {
            var resp = $.parseJSON(response);
    }
});

我想從回聲中獲取auth的值

您的JSON無效。 jsonlint嘗試 如果向下滾動頁面,您將看到“ 常見錯誤”和規則:

將您的收集密鑰括在引號中。 集合的正確格式是{“ key”:“ value”}

它應該是:

echo '{"success": true, "redirect": "/home", "auth_key":"$auth_key"}';

JavaScript測試:

 let invalidJson = "{success: true, redirect: '/home', auth_key:'$auth_key'}", validJson = '{"success": true, "redirect": "/home", "auth_key":"$auth_key"}'; try { console.log("invalid json", JSON.parse(invalidJson)); } catch (e) { console.error(e); } try { console.log("valid json", JSON.parse(validJson)); } catch (e) { console.error(e); } 

如果要創建硬代碼json,我建議創建一個Array並使用json_encode() echo它。 該函數將使用您的數據生成一個有效的json,您無需擔心對其進行格式化。

而是創建數組並將其另存為json並檢查,

$a =  ["success" =>  true, "redirect" =>  '/home', "auth_key" => $auth_key];
echo json_encode($a, JSON_UNESCAPED_SLASHES);die; // 

JSON_UNESCAPED_SLASHES-不要逃脫/

輸出量

{"success":true,"redirect":"/home","auth_key":"123213123123"}

這將確保簡短的json輸出。

暫無
暫無

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

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