jQuery.只有javascript中的parseJSON函数(没有jQuery)
`jQuery.parseJSON` function in only javascript (without jQuery)
我正在寻找在JavaScript中解析json以返回JavaScript对象的jQuery.parseJSON
的方法。我不能使用jQuery,因为我已经建立的整个插件是独立的JS,没有jQuery一直使用到现在。JavaScript中是否已经提供了这种功能?
使用本机JSON对象(这是唯一正确说"JSON对象"的时候,它实际上是一个名为JSON
的对象)来操作JSON字符串。
用JSON.parse(yourJSONString);
序列化,用JSON.stringify(yourJSONObject);
反序列化。
如果你看一下492行的jQuery核心源代码,jQuery.parseJSON
只是JSON.parse
的别名。
您可以使用本机JSON对象,这在大多数浏览器中都是支持的,但是当您尝试在IE7和更低版本的过时浏览器中使用它时,您将遇到问题。这里可以选择包含一个独立的插件来模仿本地功能(JSON.js)。
短答:
使用浏览器本地方法JSON.parse()
window.JSON.parse(jsonString);
长答:
要使其在旧浏览器中工作,您可以获取jQuery.parseJSON
的源代码并删除对jQuery本身的任何依赖。下面是一个独立运行的版本:
function standaloneParseJson ( data ) {
// Attempt to parse using the native JSON parser first
if ( window.JSON && window.JSON.parse ) {
return window.JSON.parse( data );
}
if ( data === null ) {
return data;
}
var rvalidchars = /^['],:{}'s]*$/;
var rvalidbraces = /(?:^|:|,)(?:'s*'[)+/g;
var rvalidescape = /''(?:["'''/bfnrt]|u['da-fA-F]{4})/g;
var rvalidtokens = /"[^"'''r'n]*"|true|false|null|-?(?:'d+'.|)'d+(?:[eE][+-]?'d+|)/g;
if ( typeof data === "string" ) {
// Make sure leading/trailing whitespace is removed (IE can't handle it)
data = data.replace(/^'s+|'s+$/g, '');
if ( data ) {
// Make sure the incoming data is actual JSON
// Logic borrowed from http://json.org/json2.js
if ( rvalidchars.test( data.replace( rvalidescape, "@" )
.replace( rvalidtokens, "]" )
.replace( rvalidbraces, "")) ) {
return ( new Function( "return " + data ) )();
}
}
}
// Error code here
//jQuery.error( "Invalid JSON: " + data );
}
相关文章:
- jQuery没有替换某些文本
- jQuery没有隐藏元素
- jQuery没有指定异步调用级别async:false
- jQuery没有在ajax请求的脚本标记中加载js文件
- Jquery没有'不要与合作!文本插件需要带主干的js
- jQuery没有'我不认识阶级的变化
- jquery没有't从DIV数据id中获取PHP变量值,只输出变量名
- JQuery没有't在“t”上注册事件;刷新”;元素
- Jquery没有在firefox浏览器中调用Webservice方法,它在Chrome和IE中运行良好
- jquery没有向php发送参数
- javascript/jquery没有'我不使用ajax
- jQuery没有't返回新的数据属性
- jQuery没有为具有新id的新元素执行代码
- 为什么这个javascript/jQuery没有提交html表单
- 谷歌tts的jquery没有语音
- Jquery:没有确认消息
- 为什么分页数据表JQuery没有'不要使用JSF ui:重复
- jquery没有解除绑定一个“;调整大小”;在插件中完成绑定
- jQuery没有'找不到元素或其属性
- 为什么这个jQuery没有'不能在Codeigniter中工作