![](/img/trans.png)
[英]SyntaxError: JSON.parse: expected property name or '}' from input value
[英]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.