将对象转换为JSON字符串


Answers:


188

jQuery只会在调用本机浏览器方法之前进行一些正则表达式检查window.JSON.parse()。如果不可用,它将使用eval()或更确切的说new Function()来创建Javascript对象。

相反的JSON.parse()JSON.stringify()将Javascript对象序列化为字符串。jQuery没有它自己的功能,您必须使用浏览器的内置版本或json2.jshttp://www.json.org

JSON.stringify() 在所有主流浏览器中都可用,但是要与旧版浏览器兼容,您仍然需要这种备用。


4
这可能会有所帮助:var theObject = (typeof data == "string") ? jQuery.parseJSON(data) : data;
roberthuttinger

2
@tekretic:希望您正在拖钓。Chrome浏览器实现了JSON自1日宿主对象
jAndy

5
@jAndy:哇,抱歉。不是拖钓,而是哦,太不对了。事实证明,自2009年中以来,WebKit添加了对本机JSON的支持,自从Chrome 3.0起就开始支持它。我之前的评论完全不准确,是基于这个过时问题的一半,加上我目前正在使用的CMS,实际上是用自己的库替换了window.JSON,含义JSON.stringify()未定义。在所有方面都相当失败。
Molomby 2012年


1
@jAndy:不要混淆我;:JSON.stringify'serialises'一个对象,请说这只是一个错误
Halfbit

12

Object.toSource()出于调试目的也很有用,在此处您想要显示对象及其属性以进行调试。这是一个通用Javascript(不是jQuery)功能,但是仅在“现代”浏览器中有效。


4

将JavaScript对象转换为JSON数据

$("form").submit(function(event){
  event.preventDefault();
  var formData = $("form").serializeArray(); // Create array of object
  var jsonConvertedData = JSON.stringify(formData);  // Convert to json
  consol.log(jsonConvertedData);
});

您可以使用http://jsonlint.com验证JSON数据


2

您可以使用出色的jquery-Json插件:

http://code.google.com/p/jquery-json/

使轻松地与Json对象之间进行转换。


2
请通过附加逻辑库推荐SPL方法。
David J Eddy 2013年

2
SPL =标准PHP库。在这种情况下,猜测是SJL(标准javascript库)。
David J Eddy 2013年

3
问题是关于jQuery和Javascript。它与PHP,PHP库或SPL无关。
乔治·菲利帕科斯

3
标准库是标准库;没关系的语言。我的观点是,最好推荐一种比“使用此插件”综合症教授语言的解决方案。
David J Eddy 2013年

1
确实,为什么要重新发明轮子……在“插件”上使用语言的标准功能,但我离题了。
David J Eddy 2013年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.