JSON 对象转字符串的一些方法

将后台程序(如php)发送过来的json数据转化为javascript的数组或者对象的方法十分简单,代码如下:// 假设后台发送的json数据为 '{a:2,b:1}' 存储于str中 var data = eval( '(' + str + ')' ); 然而想将一个javascript对象转化为json格式的字符串却并不那么简单,特别是对象的属性值递归包含一个对象时(如 var obj={a:[2,3],b:{m:[3,4],n:2} } ),那么有没有什么方法将obj转化为json格式的字符串呢?

当然你可以自己写一个函数,递归遍历一个对象并将其转化为json格式的字符串,对于大部分人来说这有些困难并容易出错。幸好已经有人做好了这件事情,你只用包含一段javascript代码即可。

json2.js

使用方法:[code]<!doctype html>

[/code]假如有两个变量,我要将a转换成字符串,将b转换成JSON对象:[code]var a={"name":"tom","sex":"男","age":"24"}; var b='{"name":"Mike","sex":"女","age":"29"}'; [/code]在Firefox,chrome,opera,safari,ie9,ie8等高级浏览器直接可以用JSON对象的stringify()和parse()方法。JSON.stringify(obj)将JSON转为字符串。JSON.parse(string)将字符串转为JSON格式;

上面的转换可以这么写:var a={"name":"tom","sex":"男","age":"24"}; var b='{"name":"Mike","sex":"女","age":"29"}'; var aToStr=JSON.stringify(a); var bToObj=JSON.parse(b); alert(typeof(aToStr)); //string alert(typeof(bToObj)); //object