将Object转换为JSON字符串

Kut*_*ith 122 jquery json

jQuery.parseJSON('{"name":"John"}')将字符串表示转换为对象,但我希望反过来.对象将被转换为JSON字符串我得到了一个链接http://www.devcurry.com/2010/03/convert-javascript-object-to-json.html 但它需要有json2.js做jQuery有一个原生这样做的方法?

jAn*_*ndy 185

jQuery只在调用本机浏览器方法之前进行一些regexp检查window.JSON.parse().如果它不可用,则使用eval()或更准确new Function()地创建Javascript对象.

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

JSON.stringify() 适用于所有主流浏览器,但为了与旧版浏览器兼容,您仍然需要这种后备版本.

  • 对于那些感兴趣的人,这里是[不同浏览器中原生JSON支持的一个很好的图表](http://caniuse.com/json). (13认同)
  • @jAndy:哇,对不起.没有拖钓,但OH错了.原来的JSON支持[在2009年中期添加到WebKit](https://bugs.webkit.org/show_bug.cgi?id=20031),从Chrome 3.0开始支持它.我以前的完全不准确的评论基于[这个过时的问题]的一半(http://stackoverflow.com/questions/1364842/json-is-not-defined-chrome)与我正在研究的CMS相结合实际上用自己的库替换window.JSON的那一刻,意思是`JSON.stringify()`没有定义.在所有方面都相当失败. (5认同)
  • 这可能会有所帮助:`var theObject =(typeof data =="string")?jQuery.parseJSON(data):data;` (4认同)
  • @tekretic:我希望你是在拖钓.Chrome从第1天开始实现`JSON`主机对象. (2认同)

Exc*_*bur 12

用于调试目的的Object.toSource()也很有用,您可以在其中显示对象及其属性以进行调试.这是一个通用的Javascript(不是jQuery)函数,但它只适用于"现代"浏览器.


小智 5

将 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);
});
Run Code Online (Sandbox Code Playgroud)

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