Mae*_*rtz 0 javascript json prototypejs
我跟随问题,因为我升级了我的prototypeJS框架.
JSON解析不再能够将此字符串转换为对象.
"{empty: false, ip: true}"
Run Code Online (Sandbox Code Playgroud)
以前在版本1.6中它是可能的,现在它需要是一个"验证"的JSON字符串,如
'{"empty": false, "ip": true}'
Run Code Online (Sandbox Code Playgroud)
但是我如何将第一个例子转换回一个对象呢?
JSON需要引用所有键,因此:
"{empty: false, ip: true}"
Run Code Online (Sandbox Code Playgroud)
不是有效的JSON.您需要对其进行预处理才能解析此JSON.
function preprocessJSON(str) {
return str.replace(/("(\\.|[^"])*"|'(\\.|[^'])*')|(\w+)\s*:/g,
function(all, string, strDouble, strSingle, jsonLabel) {
if (jsonLabel) {
return '"' + jsonLabel + '": ';
}
return all;
});
}
Run Code Online (Sandbox Code Playgroud)
(试试JSFiddle)它使用一个简单的正则表达式替换一个单词,后跟冒号,在双引号内引用该单词.正则表达式不会引用其他字符串中的标签.
那你就可以安全了
data = JSON.parse(preprocessJSON(json));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
751 次 |
| 最近记录: |