温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

JavaScript中JSON.parse()的用法示例

发布时间:2022-03-05 11:17:41 来源:亿速云 阅读:490 作者:小新 栏目:web开发

这篇文章将为大家详细讲解有关JavaScript中JSON.parse()的用法示例,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

JavaScript中 JSON.parse() 使用详解

JSON.parse('{}') // {}

JSON.parse('true') // true

JSON.parse('null') // null

JSON.parse 语法

JSON.parse(text[, reviver])

text:要被解析成的字符串。

如果传入数字则会转换成十进制数字输出。

如果传入布尔值则直接输出。

如果传入null则输出null。

不支持其他类型的值,否则报错。

reviver: 可选,转换器, 可以用来修改解析生成的原始值。

返回值: JavaScript对象/值, 对应给定JSON文本的对象/值。

reviver 参数

reviver函数,用于转换处理解析到的JavaScript值,处理完后返回最终的结果。

转换过程:

解析的值本身和它可能包含的所有属性,按照一定遍历顺序分别调用reviver函数,属性名和值作为参数两个参数 key 和 value 传入。

遍历顺序:按照层级,从内往外遍历,最终到达最顶层,则是解析值本身。

reviver返回undefined,则删除该对象,如果返回了其他值,则该值会成为当前属性的新值。

当遍历到最顶层时,因为没有属性了,参数key是空字符串'',参数value则是当前解析值。

对于reviver函数的两个参数 key 和 value,不同的数据类型:

基本值类型数据(string、number、boolean)和null,以及空对象{}和空数组[]:

则key是空字符串,value是对应解析值。

因为已经是最顶层,并没有别的属性。

Object对象:

则key和value都存在,与属性名和值各自对应。

最顶层会返回一个参数key为空的值。

数组:

key对应数组索引,value对应元素值。

最顶层会返回一个参数key为空的值。

基本类型的转换:

JSON.parse('5', function (key, value) {

  console.log(`key:${key}, value:${value}`)

})

// key:, value:5

JSON.parse('null', function (key, value) {

  console.log(`key:${key}, value:${value}`)

})

// key:, value:null

JSON.parse('{}', function (key, value) {

  console.log(`key:${key}, value:`, value)

})

// key:, value:{}

Object对象和数组:

JSON.parse('[1, 2]', function (key, value) {

  console.log(`key:${key}, value:`, value)

})

// key:0, value: 1

// key:1, value: 2

// key:, value: (2) [empty × 2]

JSON.parse('{ "user": "张三", "info": { "age": 25, "sex": 1 } }', function (key, value) {

  console.log(`key:${key}, value::`, value)

})

// key:user, value:: 张三

// key:age, value:: 25

// key:sex, value:: 1

// key:info, value:: {}

// key:, value:: {}

数据处理:

JSON.parse('[1, 2]', function (key, value) {

  if(key === '') {

    return value

  }

  return value + 3

})

// [4, 5]

关于“JavaScript中JSON.parse()的用法示例”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI