为什么JSON对象的这些简单的方法,工作几年,你了解依然这么少?

简单的知识,不去重视,不去总结,不去关心,永远都是不懂的。

今天讲一下JSON对象的相关方法,相信大家,听到json对象会有一种很熟悉又很模糊的感觉,熟悉是因为我们立马会想到它的两个方法:JSON.parse()和JSON.stringify()。模糊是可能了解的就仅此而已。

从两个方面聊一下:

一、兼容性

使用JavaScript语言解析字符串为JSON对象:JSON.parse()。

解析JSON对象为字符串时可以使用:JSON.stringify()。

JSON对象解析不是伴随着JavaScript的出现而产生的。例如在比IE8更低版本的浏览器中不能直接使用JSON解析方法。不过现在我们通常可以在浏览器中添加ES5-shim来增加浏览器对ECMAScript5功能的支持,让浏览器支持JSON对象的解析,这样我们就可以在后面的代码中放心使用JSON.parse/JSON.stringfy了。

二、更多方法需要了解

JSON对象除了上面那两个方法,还有一些容易混淆的方法:

JSON.toString():被调用时会调用Object原型上的toString方法,会取得JSON对象的值并转为字符串,如果没有具体的值,则返回原型数组。

JSON.valueOf():用于获取某个对象中的值。

JSON.toLocalString:也是Object原型上的方法,经常会返回与toString()相同内容,但对于Date对象,toLocaleString()会返回格式化后的时间字符串。

下面举个例子:

第一,如果是对象,怎么输出

1、JSON.stringify()

输出:"{"name":"小郑搞码事"}"

2、JSON.toString()

输出:"[object JSON]"

3、JSON.value0f()

输出:JSON

4、JSON.toLocaleString()

输出:"[object JSON]"

第二,如果是数组,怎么输出

let colors = ['red', 'blue', 'green']

console.log(colors.toString())

输出:red, blue,green

console.log(colors.valueOf())

输出:['red', 'blue', 'green']

console.log(colors.toLocaleString())

输出:red, blue,green

第三,如果是Date

let date = new Date()

console.log(date .toString())

输出:Thu Jul 05 2018 07:42:28 GMT+0800 (中国标准时间)

console.log(date .valueOf())

console.log(date .toLocaleString())

输出:2018/7/5 上午7:42:28

总结:

写到这里,突然想到一句话,存在即合理,JSON对象常用的可以就是JSON.parse/JSON.stringify,其它的方法用好了,也是一把利器。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180705A085P600?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券