欢迎来到DIVCSS5查找CSS资料与学习DIV CSS布局技术!
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]

如需转载,请注明文章出处和来源网址:http://www.divcss5.com/html/h64536.shtml