<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>将json对象转成字符串 - Lellansin</title> <script> var jsonObj = { "qq":"321321321", "MSN":"asdf@asdf.com", "Tel":"0852-8888888" }; var jStr = "{ "; for(var item in jsonObj){ jStr += "'"+item+"':'"+jsonObj[item]+"',"; } jStr += " }"; alert(jStr); </script> </head> <body> </body> </html>
最近写了一个表单里面要存的一个字段是使用json字符串格式存的,从数据库里面取下来的时候用的倒是挺爽,可是要存就有点麻烦了,当时一下子没有想到,后来去百度了一下,结果搜到的是用正则来拼接的,感觉挺麻烦的。随后跟别人讨论的过程中突然就想到了这样的办法,方法本身挺简单的,就只是网上搜不到,一下子也没想到罢了,这里做个记录,各位看着觉得简单也就见笑了。
除此之外还可以使用toJSONString()或者全局方法JSON.stringify()将JSON对象转化为JSON字符串。
例如:
var last=obj.toJSONString(); //将JSON对象转化为JSON字符
或者
var last=JSON.stringify(obj); //将JSON对象转化为JSON字符 alert(last);
不过需要注意的是,处理json数据这些方法除了eval()函数是js自带的之外,其他的很多处理json的函数,版本都比较新,可能会出现找不到方法的错误。一般来讲的话,我们都还是要劲量把客户的环境考虑的恶劣一些,所以,还是推荐用最开始的方法。
PS:最后一个会多出来一个","号,为了让代码看起来更简单没有处理.
实际上逗号是一定要删掉的,目前已经发现在IE7下会报错