(1)把 JSON 文本转换为 JavaScript 对象
由于 JSON 语法是 JavaScript 语法的子集,JavaScript 函数 eval() 可用于将 JSON 文本转换为 JavaScript 对象。
语法:var obj = eval("(" + jsonTxt + ")"); 其中jsonTxt是JSON文本。
实例如下:
var jsonTxt = '{"name":"leinov","sex":"famle","address":"beijing"}' var jsonObj = eval("("+jsonTxt+")"); alert(typeof jsonObj); //Object
JSON.parse();
作用:将JavaScript对象表示法的JSON字符串转换为对象(字符串转对象)
语法:JSON.parse(text [, reviver])
text 必选。 一个有效的 JSON 字符串。
reviver 可选。 一个转换结果的函数。 将为对象的每个成员调用此函数。
返回值:JSON对象
实例如下:
var jsonTxt = '{"name":"leinov","sex":"famle","address":"beijing"}' var jsonObj = JSON.parse(jsonTxt); alert(typeof jsonObj); //Object
(2)把 JSON 对象转换为 JSON字符串
JSON.stringify()
作用:将 JavaScript json对象转换为JavaScript对象表示法的JSON字符串(对象转为字符串)
语法:JSON.stringify(value [, replacer] [, space]);
value 必选。 通常为对象或数组
replacer 可选。 转换结果的函数或数组
space 可选。 添加缩进、空白和换行符来返回值 JSON 文本更便于阅读。
如果省略 space,返回值文本生成,没有任何额外的空白。
如果 space 是数字,则返回值具有空白的文本缩进指定数目在每个级别的。 如果 space 大于10 时,文本缩进 10 个空白。
如果 space 为非空字符串,如“\t”,返回值文本缩进与字符串的字符在每个级别。
如果 space 为大于 10 个字符的字符串,使用前 10 个字符。
返回值:JSON 包含的文本字符串。
var student = new Object(); student.name = "lenovointer"; student.sex = "male"; student.address = "hz"; var jsonStudent = JSON.stringify(student); alert(typeof jsonStudent); //string