数据交换格式 JSON
1. 什么是 JSON
概念 : JSON 的英文全称是 JavaScript ObjEct Notation, 即 "JavaScript 对象表示法" .
简单来讲 : JSON 就是Javascript对象和数组的字符串表示法,它使用文本表示一个JS对象或数组的信息 , 因此 , JSON的本质是字符串。
作用 : JSON是一种轻量级的文本数据交换格式,在作用上类似于XML,专门用于存储和传输数据,但是 JSON 比 XML 更小、更快、更易解析。
现状 : JSON 是在 2001 年开始被推广和使用的数据格式, 到现今为止, JSON 已经成为了主流的数据交换格式 .
2. JSON 的两种数据结构
JSON就是用字符串来表示Javascript 的对象和数组。所以,JSON中包含对象和数组两种结构,通过这两种结构的相互嵌套,可以表示各种复杂的数据结构。
对象结构:对象结构在JSON 中表示为{},括起来的内容。数据结构为{key.: value, key: value, ....的键值对结构。其中,key必须是使用英文的双引号包裹的字符串,value的数据类型可以是数字、字符串、布尔值、null、数组、对象6种类型。
错误的写法

正确的写法

数组结构 : 数组结构在JSON中表示为[]括起来的内容。数据结构为[ "java", "javascript", 30, true...] .数组中数据的类型可以是数字、字符串、布尔值、null、数组、对象6种类型。

3. JSON 语法注意事项 (重要)
1. 属性名必须使用双引号包裹
2. 字符串类型的值必须使用双引号包裹
3. JSON中不允许使用单引号表示字符串
4. JSON中不能写注释
5. JSON的最外层必须是对象或数组格式
6. 不能使用undefined或函数作为JSON的值
JSON的作用:在计算机与网络之间存储和传输数据。
JSON的本质:用字符串来表示Javascript对象数据或数组数据
4. JSON 和 JS 对象的关系
JSON 是 JS 对象的字符串表示法, 它使用文本表示一个 JS 对象的信息, 本质是一个字符串. 例如 :

5. JSON 和 JS对象的互转
要实现从 JSON 字符串转换为 JS 对象, 使用 JSON.parse() 方法:

要实现从 JS 对象转换为 JSON 字符串, 使用 JSON.stringify()方法 :

6. 序列化和反序列化 (面试会问)
把数据对象转换为字符串的过程, 叫做序列化, 例如 : 调用 JSON.stringify() 函数的操作, 叫做 JSON 序列化.
把字符串转换为数据对象那个的过程, 叫做反序列化, 例如 : 调用 JSON.parse() 函数的操作, 叫做 JSON 反序列化.
数据交换格式 JSON的更多相关文章
- 数据交换格式 —— JSON(JavaScript Object Notation)
当请求 headers 中,添加一个name为 Accept,值为 application/json 的 header(也即"我"(浏览器)接收的是 json 格式的数据),这样, ...
- 数据交换格式Json与XML
什么是数据交换格式: 主流的有Json.XML.HTML. 数据交换格式的应用场景: 移动端(安卓,IOS)通讯方式采用http协议+Json格式的restful风格. 很多互联网公司都是用Http协 ...
- 常用两种数据交换格式之XML和JSON的比较
目前,在web开发领域,主要的数据交换格式有XML和JSON,对于XML相信每一个web developer都不会感到陌生: 相比之下,JSON可能对于一些新步入开发领域的新手会感到有些陌生,也可能你 ...
- XML和JSON两种数据交换格式的比较
在web开发领域,主要的数据交换格式有XML和JSON,对于在 Ajax开发中,是选择XML还是JSON,一直存在着争议,个人还是比较倾向于JSON的.一般都输出Json不输出xml,原因就是因为 x ...
- 数据交换格式XML和JSON对比
1.简介: XML:extensible markup language,一种类似于HTML的语言,他没有预先定义的标签,使用DTD(document type definition)文档类型定义来组 ...
- 【学习】006数据交换格式与SpringIOC底层实现
课程目标 XML和JSON Java反射机制 手写SpringIOC 什么是数据交换格式 客户端与服务器常用数据交换格式xml.json.html 数据交换格式用场景 移动端(安卓.IOS)通讯方式采 ...
- 在.NET使用JSON作为数据交换格式
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://zhoufoxcn.blog.51cto.com/792419/517093 我们 ...
- json 数据交换格式与java
http://wiki.mbalib.com/wiki/数据交换 数据交换是指为了满足不同信息系统之间数据资源的共享需要,依据一定的原则,采取相应的技术,实现不同信息系统之间数据资源共享的过程. 数据 ...
- servlet与ajax数据交换(json格式)
JSON数据格式: JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式. 易于人阅读和编写.同时也易于机器解析和生成. 它基于的一个子集. JSON采用完全独 ...
随机推荐
- 解释WEB 模块?
Spring的WEB模块是构建在application context 模块基础之上,提供一个适合web应用的上下文.这个模块也包括支持多种面向web的任务,如透明地处理多个文件上传请求和程序级请求参 ...
- mybatis中jdbcType和javaType
1.MyBatis 通过包含的jdbcType类型 BIT.FLOAT.CHAR .TIMESTAMP . OTHER .UNDEFINEDTINYINT .REAL .VARCHAR .BINARY ...
- 在 Spring 中如何注入一个 java 集合?
Spring 提供以下几种集合的配置元素:类型用于注入一列值,允许有相同的值.类型用于注入一组值,不允许有相同的值.类型用于注入一组键值对,键和值都可以为任意类型.类型用于注入一组键值对,键和值都只能 ...
- Matplotlib is currently using agg, which is a non-GUI backend 和 ImportError: No module named 'Tkinter' [closed]
跑maskrcnn报错:UserWarning: Matplotlib is currently using agg, which is a non-GUI backend, so cannot sh ...
- 前馈控制+PID
参考来源: 北京交通大学 硕士学位论文 基于脉冲串控制的含位置反馈和前馈补偿的位置控制算法的研究 赵旺升
- 12_PID控制器_Matlab/Simulink仿真
加入噪音后,查看p控制.pi控制.以及pid控制的结果 p控制和pi控制输出 pid控制的输出(微分对高频噪音比较敏感)
- 原理图Checklist
类别 描述 检视规则 原理图需要进行检视,提交集体检视是需要完成自检,确保没有低级问题. 检视规则 原理图要和公司团队和可以邀请的专家一起进行检视. 检视规则 第一次原理图发出进行集体检视后所有的修改 ...
- validator API文档
如何使用 引入 <script src="../node_modules/jquery/dist/jquery.js"></script> <scri ...
- 推荐一款强大的轻量级模块化WEB前端快速开发框架--UIkit
前言 今天给大家分享一款强大的轻量级模块化WEB前端快速开发框架--UIkit 到目前(2016-06-20)为止,UIkit在github上的Forks已达到了1350个,而Stars更是达到了69 ...
- 微信小程序自定义tab,多层tab嵌套实现
小程序最近是越来越火了-- 做小程序有一段时间了,总结一下项目中遇到的问题及解决办法吧. 项目中有个多 tab 嵌套的需求,进入程序主界面下面有两个 tab,进入A模块后,A模块最底下又有多个tab, ...