1. 何为 JSON

JSON( JavaScript Object Notation ),即 JavaScript 对象表示法。JSON 主要用于存储和交换文本信息,类似于XML。但是和 XML 相比,JSON 是更加轻量级的文本数据交换格式,具有更小、更快、更易解析的特点。JSON 具有自我描述性,更易理解。虽然 JSON 使用 JavaScript 语法来描述数据对象,但是,JSON 是独立于语言和平台的。JSON 解析器和 JSON 库支持许多不同的编程语言。

2. JSON 基本语法

JSON 语法是 JavaScript 对象表示法语法的子集。具体内容如下:

  • 数据在key/value对中存储
  • 数据由逗号分隔
  • 花括号保存对象
  • 方括号保存数据

3. JSON值的类型

JSON的数据都在key/value对中存储,其中,这个值,可选类型如下:

  • 数字(整数或浮点数),例如:{ "number":12.34 }

  • 字符串(在双引号中),例如:{ "name":"qiumengchen" }

  • 逻辑值(true 或 false),例如:{ "isOpen":true }

  • 数组(在中括号中),例如:{ "array":[1.2 , "3" , true , [4,5] , {"test":"ok"} , null] }

  • 对象(在大括号中),例如:{ "person":{"name":"qiumengchen","isHandsome":true} }

  • null,例如:{ "blog":null }

总体来说,JSON的完整表现形式有两种:

  • JSON对象:以大括号({})为标志,对象可以包含多个key/value对,注意:对象中的每一项都必须是key/value对,不能是其他形式。但是,其中的key必须是字符串,其中的value可以是合法的JSON数据类型包括:数字、字符串、逻辑值、数组、对象、null等。例如:
{
"name": "qiumengchen",
"isHandsome": true,
"blog": {
"url": "qiumengchen.top",
"name": "myBlog"
}
}
  • JSON数组:以中括号([])为标志,数组可以包含多个value,value可以是合法的JSON数据类型包括:数字、字符串、逻辑值、数组、对象、null等。但是,一般来说,我们会保持数据中每个项的形式和意义的一致性,方便理解和运用。例如:
[ 99 , "qiumengchen" , true , [1,2,3] , {"name":"qiumengchen"} , null ]

4. 与XML比较

与XML相同之处

  • JSON 是纯文本
  • JSON 具有”自我描述性”(人类可读)
  • JSON 具有层级结构(值中存在值)
  • JSON 可通过 JavaScript 进行解析
  • JSON 数据可使用 AJAX 进行传输

与XML不同之处

  • 没有结束标签
  • 更短
  • 读写的速度更快
  • 能够使用内建的 JavaScript eval() 方法进行解析
  • 使用数组
  • 不使用保留字

5. 辅助工具

JSON在线解析工具(功能包括:JSON格式化、压缩、验证格式、JSON转XML、CSV、YAML),地址如下:https://c.runoob.com/front-end/53

Chrome浏览器插件:JSON-handle

原文:https://blog.csdn.net/qiumengchen12/article/details/72283079

最新文章

  1. UVA11478 Halum [差分约束系统]
  2. s3c2440 上txt 小说阅读器
  3. The 11 advantages of Java -Why you choose this language
  4. 你用过这种奇葩的C#注释吗?如何看待
  5. ios创建二维码
  6. 【IOS】2.基础
  7. 【JavaScript】关于JS中的constructor与prototype
  8. oc_转_类的数组的实现和操作
  9. 熟练掌握HDFS的Java API接口访问
  10. C++内联函数与宏定义
  11. 执行Git命令时出现 SSL certificate problem 的解决办法
  12. 一些简单的例子让你在Java中能更好的学习并理解循环结构(1)!
  13. Swift 3中新的访问控制关键字fileprivate和open
  14. Round #2
  15. 深度解析XML的结构与类映射
  16. 同一个菜品商家中心和erp价格显示不一致解决方案FAQ
  17. collections模块
  18. JVM 调优-给你的java应用看看病
  19. 【叶问】 MySQL常用的sql调优手段或工具有哪些
  20. [POI2013]Usuwanka

热门文章

  1. K8s无状态控制器原理介绍
  2. webgestalt 通路富集分析
  3. 信息系统项目十大管理ITO
  4. DesktopSharing<转>
  5. Mybatis报错:org.apache.ibatis.builder.IncompleteElementException
  6. JDBC 线程安全 数据库连接池
  7. Xamarin.FormsShell基础教程(6)Shell项目内容详情页面
  8. docker配置阿里云的仓库源以及安装docker-compose
  9. 【专】linux nameserver导致的故障
  10. winform调用webservice假死怎么解决