# 标准内置对象—JSON

# 简介

# 定义

JSON(JavaScript Object Notation):JavaScript对象表示法。随着ES5的发布,新的标准内置了JSON对象,用于JSON对象和JSON字符串之间的转换操作。JSON是一种与语言无关数据交换的格式,作用:

  • JSON现在多用于存储交换文本信息的语法
  • 进行数据的传输
  • JSON 比 XML 更小、更,更易解析

# 基本规则

  • 数据在名称/值对中,键用双引号(严格模式)引起来。顶级可以是对象数组
  • 值的取值类型:
    1. 数字(整数或浮点数)
    2. 字符串(在双引号中)
    3. 逻辑值(true 或 false)
    4. 数组(在方括号中) {"persons":[{},{}]}
    5. 对象(在花括号中) {"address":{"province":"陕西"....}}
    6. null
  • 数据由逗号分隔:多个键值对由逗号分隔
  • 花括号保存对象{}
  • 方括号保存数组[]

# 获取数据

JSON 是 JavaScript 的原生内容,也就是JavaScript可以直接取出JSON 对象中的数据

  1. JSON对象.键名

  2. JSON对象["键名"]

  3. 数组对象[索引]

  4. 遍历:for...infor...of、普通等都可以

# 方法

JSON作为全局对象,我们可以直接调用,它有如下两个函数:

  • JSON.parse(string):负责将字符串转换为JOSN对象并返回

  • JSON.stringify(value[, replacer[, space]]):负责将数据转换为JSON字符串并返回

    • value 就是我们需要转换的对象。可以是null, boolean, number, string, JSONObject, JSONArray

    • replacer 可以是一个数组或者一个函数,如果传入一个数组,则相当于一个白名单,只有出现在数组中的属性名对应的键值对才会出现结果中,如果指定一个函数,我们可以实现一些逻辑来过滤或更改将要出现在结果中的数据。可为null

    • space 是缩进空格,我们可以指定一个数字,表示缩进几个空格,还可以指定一个字符串,表示以指定字符串代替空格出现在缩进中