<!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下会报错