个人博客

学习加油站


  • 首页

  • 关于

  • 标签

  • 分类

  • 归档

JS中JSON 类型 —— 数据的迭代

发表于 2019-08-10 更新于 2019-08-16

JS 中 JSON 类型—— 数据的迭代

0. 什么是JSON?

​ JSON是JavaScript Object Notation的缩写,它是一种数据交换格式。尽管JSON是JavaScript的一个子集,但JSON是独立于语言的文本格式,JSON 数据格式与语言无关,脱胎自JavaScript,但目前很多编程语言都支持JSON 格式数据的生成和解析(维基)。

1. json类型的数据

​ JavaScript中,json类型的数据,有两种形式,一种是数组形式,另一种是对象形式

注意:json 与 js对象的区别

A. 为了统一解析,JSON的字符串规定必须用双引号"",Object的键也必须用双引号""

B. JSON键值对中的值不能为方法、函数/undefined/NaN

  • 数组形式

    用下标来定位元素,数组内的元素是对象形式的json数据

1
2
3
4
json1 = [
{"key1":"value1"},
{"key2":"value2"}
]

​ 数组格式的json的迭代,可以使用js数组的遍历和迭代函数实现。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
// 1.数组形式
json_array = [
{"key1":"value1"},
{"key2":
[
{"key21": "value21"},
{"key22": "value22"}
]
},
]

// 1)for in
for (let key in json_array){
console.log(key,json_array[key])
}

// 2) for of
for (let item of json_array){
console.log(item)
}

// 3) forEach
json_array.forEach(item=>
console.log(item)
)
  • 对象形式
1
2
3
4
5
6
7
json2 = {
"key1":"value1",
"key2":[
{"key21": "value21"},
     {"key22": "value22"}
]
}

​ 对象格式的json的迭代,可以使用js对象的遍历方式实现。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
// 2.对象形式
json_obj = {
"key1":"value1",
"key2":[
{"key21": "value21"},
{"key22": "value22"}
]
}

// 1) for in
for(let i in json_obj){
console.log(i,json_obj[i])
}

// 2) Object.keys
Object.keys(json_obj).forEach(key=>{
console.log(key,json_obj[key])
})

// 3) Reflect.ownKeys
Reflect.ownKeys(json_obj).forEach(key=>{
console.log(key,json_obj[key])
})

// 4) Object.getOwnPropertynames
Object.getOwnPropertyNames(json_obj).forEach(key=>{
console.log(key,json_obj[key])
})

思考 — 若对象形式的json数据,存在多级嵌套,则用递归处理

综合两种形式和嵌套的json迭代函数——json_iteration

1
2
3
4
5
6
7
8
9
10
json_iteration = function(json){
for(let key in json){
if (typeof(json[key]) == 'object') {
json_iteration(json[key])
}
else{
console.log(key,json[key])
}
}
}
# JS # JSON
Hexo
浅谈 var、let 和 const (一)
  • 文章目录
  • 站点概览

WYP

知识管理,自我管理
12 日志
8 标签
GitHub E-Mail 简书
  1. 1. JS 中 JSON 类型—— 数据的迭代
    1. 1.0.1. 0. 什么是JSON?
    2. 1.0.2. 1. json类型的数据
      1. 1.0.2.0.1. 数组形式
      2. 1.0.2.0.2. 对象形式
© 2019 – 2021 wyp