JSON,你了解吗?

JSON

JSON 出现之前, 一直用 XML 来传递数据,后来 XML 越来越复杂难用。2002年,道格拉斯·克罗克福特发明了 JSON。

概念

JSON, JavaScript 对象表示法(JavaScript Object Notation), 是一种轻量级的文本数据交换格式。

JSON 文本的 MIME 类型是 "application/json"
复制代码

数据类型

object
array
number
string
boolean
null

为统一解析,string和object的键必须使用双引号" "
复制代码

语法

JSON 实际上是 JavaScript 的一个子集,使用 JavaScript 语法,采用 JavaScript 的方式操作对象和数组。
复制代码

数据结构

1.对象
    var packJson = {
        "name": "Liza",
        "password": "123"
    }
    
    增:
        packJson.id = "hdyehsjdejshyde"
    查:
        packJson.name
    改:
        packJson.name = "Lily"
    删:
        delete packJson.name
        
2.数组
    let arr = [
        { "name":"Google", "info":[ "Android", "Google 搜索", "Google 翻译" ] },
        { "name":"Runoob", "info":[ "菜鸟教程", "菜鸟工具", "菜鸟微信" ] },
        { "name":"Taobao", "info":[ "淘宝", "网购" ] }
    ]
    
    增:
        arr.push({ "name":"baidu", "info":[ "百度"] })
    查:
        arr[0].name
    改:
        arr[3] = {"name":"juejin", "info":[ "掘金"] }
    删:
        delete arr[3]
复制代码

方法

1.JSON.parse(text[, reviver])  反序列化

    参数:
        text:必需,一个有效的JSON字符串。
        reviver:可选,一个转换结果的函数,每个成员都将调用。
        
    用途:将服务端数据(字符串)转为 JavaScript 对象。
    
    let obj = JSON.parse('{"name":"小明","age":14}', (key, val) => {
        if (key === 'name') {
            return val + '同学'
        }
        return val
    })
    // obj = {name: "小明同学", age: 14}
    
2.JSON.stringify(value[, replacer[, space]])  序列化

    参数:
        value: 必需,一个有效的 JSON 对象。
        replacer: 可选,用于转换结果的函数或数组。
        space: 可选,文本添加缩进、空格和换行符。

    用途:将 JavaScript 对象转换为字符串,向服务端发送数据。
    
    let xiaoming = {
        name: '小明',
        age: 14,
        height: 1.65,
        gender: 'male'
    }
    
    JSON.stringify(xiaoming)
    {"name":"小明","age":14,"height":1.65,"gender":"male"}
    
    JSON.stringify(xiaoming, null, ' ')
    "{
      "name": "小明",
      "age": 14,
      "height": 1.65,
      "gender": "male"
    }"
    
    JSON.stringify(xiaoming, ['name', 'age'], ' ')
    "{
      "name": "小明",
      "age": 14
    }"
    
    const convert = (key, val) => {
        let res = typeof val === 'string' ? val.toUpperCase() : val
        return res
    }
    JSON.stringify(xiaoming, convert, ' ')
    "{
      "name": "小明",
      "age": 14,
      "height": 1.65,
      "gender": "MALE"
    }"
复制代码

参考:

1.www.runoob.com/json/json-s…

2.www.liaoxuefeng.com/wiki/001434…

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值