关于JSON基础的总结
本文总结自百度百科
JSON 语法规则
- 数据在键值对中
- 数据由逗号分隔
- 花括号保存对象
- 方括号保存数组
JSON 名称/值对
名称/值对组合中的名称写在前面(在双引号中),值对写在后面(同样在双引号中),中间用冒号隔开:
"firstName":"John"
这很容易理解,等价于这条 JavaScript 语句:
firstName="John"
JSON 值
- 数字(整数或浮点数)
- 字符串(在双引号中)
- 逻辑值(true 或 false)
- 数组(在方括号中)
- 对象(在花括号中)
- null
基础结构
基础示例
简单地说,JSON 可以将 JavaScript 对象中表示的一组数据转换为字符串,然后就可以在函数之间轻松地传递这个字符串,或者在异步应用程序中将字符串从 Web 客户机传递给服务器端程序。这个字符串看起来有点儿古怪,但是JavaScript很容易解释它,而且 JSON 可以表示比"名称 / 值对"更复杂的结构。例如,可以表示数组和复杂的对象,而不仅仅是键和值的简单列表。
名称 / 值对
{"firstName":"Brett"}
这个示例非常基本,而且实际上比等效的纯文本"名称 / 值对"占用更多的空间:
firstName=Brett
但是,当将多个"名称 / 值对"串在一起时,JSON 就会体现出它的价值了。首先,可以创建包含多个"名称 / 值对"的 记录,比如:
{"firstName":"Brett","lastName":"McLaughlin","email":"aaaa"}
从语法方面来看,这与"名称 / 值对"相比并没有很大的优势,但是在这种情况下 JSON 更容易使用,而且可读性更好。例如,它明确地表示以上三个值都是同一记录的一部分;花括号使这些值有了某种联系。
表示数组
{"people":[{"firstName":"Brett","lastName":"McLaughlin","email":"aaaa"},{"firstName":"Jason","lastName":"Hunter","email":"bbbb"},{"firstName":"Elliotte","lastName":"Harold","email":"cccc"}] }
这不难理解。在这个示例中,只有一个名为 people的变量,值是包含三个条目的数组,每个条目是一个人的记录,其中包含名、姓和电子邮件地址。上面的示例演示如何用括号将记录组合成一个值。当然,可以使用相同的语法表示多个值(每个值包含多个记录):
{"programmers": [{"firstName": "Brett","lastName": "McLaughlin","email": "aaaa"}, {"firstName": "Jason","lastName": "Hunter","email": "bbbb"}, {"firstName": "Elliotte","lastName": "Harold","email": "cccc"}],"authors": [{"firstName": "Isaac","lastName": "Asimov","genre": "sciencefiction"}, {"firstName": "Tad","lastName": "Williams","genre": "fantasy"}, {"firstName": "Frank","lastName": "Peretti","genre": "christianfiction"}],"musicians": [{"firstName": "Eric","lastName": "Clapton","instrument": "guitar"}, {"firstName": "Sergei","lastName": "Rachmaninoff","instrument": "piano"}] }
格式应用
赋值给变量
1 var people = { 2 "programmers": [{ 3 "firstName": "Brett", 4 "lastName": "McLaughlin", 5 "email": "aaaa" 6 }, { 7 "firstName": "Jason", 8 "lastName": "Hunter", 9 "email": "bbbb" 10 }, { 11 "firstName": "Elliotte", 12 "lastName": "Harold", 13 "email": "cccc" 14 }], 15 "authors": [{ 16 "firstName": "Isaac", 17 "lastName": "Asimov", 18 "genre": "sciencefiction" 19 }, { 20 "firstName": "Tad", 21 "lastName": "Williams", 22 "genre": "fantasy" 23 }, { 24 "firstName": "Frank", 25 "lastName": "Peretti", 26 "genre": "christianfiction" 27 }], 28 "musicians": [{ 29 "firstName": "Eric", 30 "lastName": "Clapton", 31 "instrument": "guitar" 32 }, { 33 "firstName": "Sergei", 34 "lastName": "Rachmaninoff", 35 "instrument": "piano" 36 }] 37 };
这非常简单;people包含前面看到的 JSON 格式的数据。但是,这还不够,因为访问数据的方式似乎还不明显。
访问数据
people.programmers[0].lastName;
注意,数组索引是从零开始的。所以,这行代码首先访问 people变量中的数据;然后移动到称为 programmers的条目,再移动到第一个记录([0]);最后,访问 lastName键的值。结果是字符串值 “McLaughlin”。
1 people.authors[1].genre // Value is "fantasy" 2 people.musicians[3].lastName // Undefined. This refers to the fourth entry, and there isn't one 3 people.programmers[2].firstName // Value is "Elliotte"
利用这样的语法,可以处理任何 JSON 格式的数据,而不需要使用任何额外的 JavaScript 工具包或 API。
修改数据
people.musicians[1].lastName="Rachmaninov";
在将字符串转换为 JavaScript 对象之后,就可以像这样修改变量中的数据。
换回字符串
JSON嵌套格式
1 { 2 id: '100000', 3 text: '廊坊银行总行', 4 children: [ 5 { 6 id: '110000', 7 text: '廊坊分行', 8 children: [ 9 { 10 id: '113000', 11 text: '廊坊银行开发区支行', 12 leaf: true 13 }, 14 { 15 id: '112000', 16 text: '廊坊银行解放道支行', 17 children: [ 18 { 19 id: '112200', 20 text: '廊坊银行三大街支行', 21 leaf: true 22 }, 23 { 24 id: '112100', 25 text: '廊坊银行广阳道支行', 26 leaf: true 27 } 28 ] 29 }, 30 { 31 id: '111000', 32 text: '廊坊银行金光道支行', 33 leaf: true 34 } 35 ] 36 } 37 ] 38 }
XML格式和JSON格式对一份数据的表示:
XML:
<?xml version="1.0" encoding="utf-8"?> <country><name>中国</name><province><name>黑龙江</name><cities><city>哈尔滨</city><city>大庆</city></cities></province><province><name>广东</name><cities><city>广州</city><city>深圳</city><city>珠海</city></cities></province><province><name>台湾</name><cities><city>台北</city><city>高雄</city></cities></province><province><name>新疆</name><cities><city>乌鲁木齐</city></cities></province> </country>
JSON:
{"name": "中国","province": [{"name": "黑龙江","cities": {"city": ["哈尔滨", "大庆"]}}, {"name": "广东","cities": {"city": ["广州", "深圳", "珠海"]}}, {"name": "台湾","cities": {"city": ["台北", "高雄"]}}, {"name": "新疆","cities": {"city": ["乌鲁木齐"]}}] }
本文转自SummerChill博客园博客,原文链接:http://www.cnblogs.com/DreamDrive/p/5777342.html,如需转载请自行联系原作者
关于JSON基础的总结相关推荐
- 【ESP32_8266_WiFi (九)】JSON基础
文章目录 JSON基础 1 JSON概念 2 JSON语法规则要点 3 JSON数据 3.1 JSON数字数据示例 3.2 JSON字符串数据示例 3.3 JSON逻辑值数据示例 3.4 JSON数组 ...
- 视频教程-JSON基础入门实战讲解-JavaScript
JSON基础入门实战讲解 04年进入计算机行业.拥有6年net和php项目开发经验,8年java项目开发经验. 现前端全栈工程师,主攻产品设计,微信开发等. 黄菊华 ¥39.00 立即订阅 扫码下载「 ...
- JSON基础入门实战讲解在线视频课程-JSON 使用 JavaScript 语法
因为 JSON 使用 JavaScript 语法,所以无需额外的软件就能处理 JavaScript 中的 JSON. 微信小程序交流群:111733917 | 微信小程序从0基础到就业的课程:http ...
- JSON基础入门实战讲解在线视频课程-JSON语法规则,json对象,json数组的定义和使用
JSON 语法 微信小程序交流群:111733917 | 微信小程序从0基础到就业的课程:https://edu.csdn.net/topic/huangjuhua JSON 语法是 JavaScri ...
- 【java json基础】字符串转json json转字符串 json数组转换 【java基础知识】【实用】【一看就会】
原文:[java json基础]字符串转json json转字符串 json数组转换 [java基础知识][实用][一看就会] 读书就是:从薄读厚,再从厚读薄的过程. 文比较长,各讲述如下: 若是新手 ...
- Educoder - JSON基础
第1关:JSON篇:JSON基础知识 {"students":[{"name":"赵昊","age":15," ...
- JSON基础及Java的JSON工具类
一.JSON基础 定义:JSON(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式.它基于 ECMAScript (欧洲计算机协会制定的js规范)的 ...
- Ajax基础和Json基础
AJAX: 1. 概念: ASynchronous JavaScript And XML 异步的JavaScript 和 XML1. 异步和同步:客户端和服务器端相互通信的基础上* 客户端必须等待服务 ...
- JSON 基础解释.
JSON.(JavaScript Object Notation) JSON 指的是 JavaScript 对象表示法(JavaScript Object Notation) JSON 是轻量级的文本 ...
最新文章
- 赵胜男:数据思维,让我的科研和志愿服务动力十足 | 提升之路系列(十二)...
- SkipList 跳表
- 「Caffe」python版本caffe编译
- mysql自动插入的时间不对 差8小时
- 渤海船舶职业学院计算机应用公司,渤海船舶职业学院
- 低碳数据中心,因何而来?一文读懂如何利用超融合降碳
- Spring Data Redis实战之提供RedisTemplate
- NSTimer、CADisplayLink、GCD 三种定时器的用法 —— 昉
- 小米互联通信服务_时隔六年,小米NFC碰碰贴复活,碰一下自动亮灯、联网、投屏...
- XML和实体序列化和反序列化
- python人工智能爬虫系列:怎么查看python版本_电脑计算机编程入门教程自学
- 如何读取二进制图片-.ashx一般处理程序
- 大数据第一季--java基础(day5)-徐培成-专题视频课程
- 人活着到底为了什么?
- Database of Fog
- U盘文件乱码怎么恢复正常
- Linux centos环境 安装谷歌浏览器
- 三位一体自荐信计算机专业,三位一体自荐信写法和范文
- 一年卖出20.4亿颗图像传感器,这家公司上市首日股价大涨145%
- IE浏览器代理服务器总是自动打开,取消勾选隔一会又会打开