js中的json处理

JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,我们常使用此格式进行前后台数据交互,因此,我们必须掌握js中对json数据的解析和转化,有不少方法可以实现,我们拿其中的几种方法进行简单讲解。
Ⅰ. 使用JSON.stringify() 和 JSON.parse() 方法。

IE支持情况:IE 8 标准模式、IE 9 标准模式、IE 10 标准模式、IE 11 标准模式。
IE不支持版本:Quirks、IE 6 标准模式、IE 7 标准模式。

如果要使用该方法解析和序列化json的话,需要注意使用的IE版本,IE7以下或者Quirks模式的IE浏览器将不支持该方法,所以需要下载json2.js并引入,以确保所有的IE浏览器都能使用这2个方法。

json2.js下载:https://github.com/douglascrockford/JSON-js
csdn备份下载:http://download.csdn.net/detail/czw2010/9150825

eg:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title>测试</title>
        <script type="text/javascript" src="js/json2.js"></script>-->
        <script>
            var person = {name:"张三",age:"22"};
            console.log(JSON.stringify(person));
            //输出为:"{"name":"张三","age":"22"}"
        </script>
    </head>
    <body>
    </body>
</html>

原型:

JSON.stringify(value [, replacer] [, space])

参数

  • value
    必需。 要转换的 JavaScript 值(通常为对象或数组)。
  • replacer
    可选。 用于转换结果的函数或数组。
    如果 replacer 为函数,则 JSON.stringify 将调用该函数,并传入每个成员的键和值。 使用返回值而不是原始值。 如果此函数返回 undefined,则排除成员。 根对象的键是一个空字符串:”“。
    如果 replacer 是一个数组,则仅转换该数组中具有键值的成员。 成员的转换顺序与键在数组中的顺序一样。 当 value 参数也为数组时,将忽略 replacer 数组。
  • space
    可选。 向返回值 JSON 文本添加缩进、空格和换行符以使其更易于读取。
    如果省略 space,则将生成返回值文本,而没有任何额外空格。
    如果 space 是一个数字,则返回值文本在每个级别缩进指定数目的空格。 如果 space 大于 10,则文本缩进 10 个空格。
    如果 space 是一个非空字符串(例如“\t”),则返回值文本在每个级别中缩进字符串中的字符。
    如果 space 是长度大于 10 个字符的字符串,则使用前 10 个字符。

原型:

JSON.parse(text [, reviver])

参数

  • text
    必需。 一个有效的 JSON 字符串(必须为标准的json格式,可以尝试使用response.responseText.replace(/\’/g, “’”)先将数据转为标准格式)。
  • reviver
    可选。 一个转换结果的函数。 将为对象的每个成员调用此函数。 如果成员包含嵌套对象,则先于父对象转换嵌套对象。 对于每个成员,会发生以下情况:
    如果 reviver 返回一个有效值,则成员值将替换为转换后的值。
    如果 reviver 返回它接收的相同值,则不修改成员值。
    如果 reviver 返回 null 或 undefined,则删除成员。
    Ⅱ. 使用eval()方法
    可以简单使用eval()方法来解析json数据,但无法序列化json
    eg:
<script>
    var person = {name:"张三",age:"22"};
    var str = JSON.stringify(person);
    var person3 = eval('('+str +')');
    console.log(person3.name); //输出"张三"
</script>

Ⅲ. jquery

未完待续…

参考文章:
https://msdn.microsoft.com/zh-cn/library/cc836458(v=vs.94).aspx

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

夜之子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值