为您解惑:JSON的eval()和parse()方法以及stringfy()方法

JSON 最常见的用法之一,是从 web 服务器上读取 JSON 数据(作为文件或作为 HttpRequest),将 JSON 数据转换为 JavaScript 对象,然后在网页中使用该数据。

为了更简单地讲解,下面使用字符串作为输入进行演示(而不是文件)。

(1)把 JSON 文本转换为 JavaScript 对象

a. 由于 JSON 语法是 JavaScript 语法的子集,JavaScript 函数 eval() 可用于将 JSON 文本转换为 JavaScript 对象。

语法:var obj = eval ("(" + jsonTxt + ")");  其中jsonTxt是JSON文本。

实例如下:

<span style="font-size:18px;">var jsonTxt = '{"name":"leinov","sex":"famle","address":"beijing"}'
var jsonObj = eval("("+jsonTxt+")");
alert(typeof jsonObj); //Object</span>
b.JSON.parse();
作用:将JavaScript对象表示法的JSON字符串转换为对象(字符串转对象)
语法:JSON.parse(text [, reviver])
text 必选。 一个有效的 JSON 字符串。
reviver 可选。 一个转换结果的函数。 将为对象的每个成员调用此函数。
返回值:JSON对象

实例如下:
<span style="font-size:18px;">var jsonTxt = '{"name":"leinov","sex":"famle","address":"beijing"}'
var jsonObj = JSON.parse(jsonTxt);
alert(typeof jsonObj); //Object</span>

(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 = "leinov";
student.sex = "famle";
student.address = "chaoyang";
var jsonStudent = JSON.stringify(student);
alert(typeof jsonStudent); //string

注:部分借鉴 https://technet.microsoft.com/zh-cn/sysinternals/cc836466(v=vs.85)


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值