我正在寻找在JavaScript中执行jQuery.parseJSON
的方法,该方法解析一个json以返回一个JavaScript对象。我无法使用jQuery,因为我构建的整个插件是独立的JS,直到现在还没有使用jQuery。有没有这种东西已经在JavaScript中提供了?`jQuery.parseJSON`函数只有javascript(没有jQuery)
回答
使用本机JSON对象(这是唯一一次说“JSON对象”是正确的,它实际上是一个名为JSON
的对象)来操纵JSON字符串。
https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/JSON
使用JSON.parse(yourJSONString);
序列化和JSON.stringify(yourJSONObject);
反序列化。
如果您查看在线492上的jQuery core source,jQuery.parseJSON
只是JSON.parse
的别名。
'jbabey'编辑了这个问题。我打算提到jQuery.parseJSON – user1240679 2013-02-27 18:50:47
您可以使用大多数浏览器支持的native JSON object,但是当您尝试在恐龙浏览器(如IE7及更低版本)中使用它时会遇到问题。还有就是选项include a standalone plugin that mimics native functionality here (JSON.js).
简短的回答:
使用浏览器的本地方法JSON.parse()
window.JSON.parse(jsonString);
龙答:
为了得到它在旧的浏览器工作,你可以采用jQuery.parseJSON
的source code,并删除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);
}
- 1. JavaScript函数只有当有警报
- 2. JavaScript函数只有在连接类型的警报没有
- 3. javascript函数没有定义?
- 4. javascript函数没有定义
- 5. JavaScript函数没有运行
- 6. Javascript函数没有响应
- 7. javascript函数没有执行
- 8. Javascript函数没有完成
- 9. javascript函数没有运行
- 10. JavaScript函数没有定义
- 11. javascript函数没有响应
- 12. jQuery函数没有返回
- 13. jquery函数没有执行
- 14. jQuery函数没有找到
- 15. JQuery函数没有触发
- 16. Javascript和HTML,Javascript函数没有输出
- 17. 写一个函数只有JavaScript
- 18. JavaScript函数调用 - 希望它在jQuery的只有
- 19. Wysihat没有Rake,只是Javascript?
- 20. 只是php没有javascript
- 21. 触发jQuery函数只有一次
- 22. 处理JavaScript函数中没有参数
- 23. javascript没有范围函数参数
- 24. Javascript只有没有JQUERY幻灯片一个DIV .Active类
- 25. 匹配身高只有,没有的jQuery或Javascript
- 26. 按类隐藏元素(只有Javascript,没有Jquery)
- 27. jQuery.ParseJson没有从MySQL数据库返回一个值
- 28. 只有当复选框没有被选中时才会调用javascript函数
- 29. Jquery - 如何运行一个函数onclick只有当链接没有拖动?
- 30. AngularJS JavaScript函数没有要求
是的,JSON.parse – 2013-02-27 18:48:03
@KevinB:编辑了问题。我打算提jQuery.parseJSON – user1240679 2013-02-27 18:51:08
我的评论仍然适用。 – 2013-02-27 18:52:17