[英]How can I resolve JSON parsing error 'JSON.parse: bad control character in string literal'?
[英]JSON.parse : Bad control character in string literal
我認為這是一個基本問題,但我不明白原因。 在JSON中,“asdfadf\tadfadf”這樣的特殊字符是合法的,但是當嘗試解析它時,它顯示錯誤。 例如。 代碼:
let s = '{"adf":"asdf\tasdfdaf"}';
JSON.parse(s);
錯誤:
Uncaught SyntaxError: Bad control character in string literal in JSON at position 12
at JSON.parse (<anonymous>)
at <anonymous>:1:6
我需要了解問題所在和解決方案。
您必須考慮到\t
將涉及兩個解析操作:首先,當您的字符串常量被 JavaScript 解析時,其次,當您使用JSON.parse()
解析 JSON 字符串時。 因此你必須使用
let s = '{"adf":"asdf\\tasdfdaf"}';
如果不這樣做,您將看到從字符串中嵌入的實際制表符看到的錯誤。 JSON 不允許在字符串中嵌入“控制”字符。
此外,如果實際的 JSON 內容是以某種方式在服務器端代碼中創建的,則跳過構建您將立即解析為 JSON 的字符串可能更容易。相反,讓您的代碼直接構建 JavaScript object 初始化程序:
let s = { "adf": "asdf\tasdfdaf" };
在你的服務器環境中,可能有一個 JSON 工具,它允許你從 PHP 或 Java 或其他任何東西中獲取數據結構,並將其轉換為 JSON,這也將作為 JavaScript 語法工作。
let t = '{"adf":"asdf\\tasdfdaf"}';
var obj = JSON.parse(t) console.log(obj)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.