JSON常识

JSON的诞生原因是因为XML整合到HTML中各个浏览器实现的细节不尽相同,所以道格拉斯·克罗克福特(Douglas Crockford) 和 奇普·莫宁斯达(Chip Morningstar)一起从JS的数据类型中提取了一个子集,作为新的数据交换格式,因为主流的浏览器使用了通用的JavaScript引擎组件,所以在解析这种新数据格式时就不存在兼容性问题,于是他们将这种数据格式命名为 “JavaScript Object Notation”,缩写为 JSON,由此JSON便诞生了!


前人栽树,后人乘凉,以下为学习笔记


JSON简介

JSON(JavaScript Object Notation, JS 对象标记) 是一种轻量级的数据交换格式。

它是基于 ECMAScript的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。

简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。

JSON建构于两种结构:

  • 键值对的无序集合 — 对象

也可以理解为纪录(record),结构(struct),字典(dictionary),哈希表(hash table),有键列表(keyed list),或者关联数组 (associative array)。

  • 值的有序列表 — 数组

JSON语法

JSON 语法是 JavaScript 语法的子集。

数据在名称/值对中
数据由逗号分隔
花括号保存对象
方括号保存数组

//a.json
{
    "a": "a",
    "b": {
        "c": "c",
        "d": true,
        "e": [
            "a",
            "b"
        ]
    }
}
//index.js
var a = require('./a.json');
console.log('a',a);
var b = JSON.stringify(a);  // 对象转换为 JSON (字符串)
console.log('b',b)
var c = JSON.parse(b)       // JSON 转换为对象
console.log('c',c)

node执行结果

E:\test\0806-JSON>node index.js
a { a: 'a', b: { c: 'c', d: true, e: [ 'a', 'b' ] } }
b {"a":"a","b":{"c":"c","d":true,"e":["a","b"]}}
c { a: 'a', b: { c: 'c', d: true, e: [ 'a', 'b' ] } }

(通过browserify打包), 浏览器的打印结果:对象和JSON字符串
注意:

规范的JSON格式下,键值对必须是都有双引号包裹,如:

"name": "a"

不带双引号或者带单引号的JSON是不符合规范的

name: "a"   // Unexpected token n in JSON at position
"name": 'a'  // Unexpected token ' in JSON at position

不规范的JSON格式

参考

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值