一、JSON是什么?

有一种叫做JSON (JavaScript Object Notation) 的轻量级数据交换格式能够替代XML的工作。它就是JSON。

数据格式比较简单, 易于读写, 格式都是压缩的, 占用带宽小。
易于解析这种语言, 客户端JavaScript可以简单的通过eval()进行JSON数据的读取。
包括ActionScript, C, C#, ColdFusion,Java,JavaScript,Perl,PHP,Python,Ruby等语言服务器端语言, 便于服务器端的解析。
各语言对JSON支持的特别好,自从Ajax的流行,JSON格式传输就更流行了。

首先,它只是一个字符串,它只是一个有规则的字符串。(重点)
然后它的表达(表现)形式是键值对的。其实非常类似Java语言里的Map,Objective-C里的字典,其他语言都有对应的,我说实话其他语言我不知道!我为什么用MapString泛型,因为理论上它的键值对应该都是字符串,Why?这个问题问的好,我可以这么回答你,因为它本身就是字符串。
上面说的理论上表达方式,那么实际目前我们用到的键值对支持什么呢?可以支持String、Number、Array以及Boolean、null什么的。
它的作用是用来交互的,不一定Web项目的前后端交互也可以接口,配置文件,文件存储等等都OK。目前移动端比较火,一般的项目都会用JSON来传输。

二、它能带来什么?

简洁、简单、体积小等。
上手容易,高效。
跨语言,目前移动端Android、IOS一般项目构造都是其他语言提供接口(JSON方式),移动端读取接口的方式开发。
….

三、它和XML对比?

可读性:看了网上的各种帖子,有说可读性相当,不过基本是说XML可读性好,我认为还凑合。可以打平手。
可扩展性:有人说,“XML天生有很好的扩展性,JSON当然也有,没有什么是XML能扩展,JSON不能的。不过 JSON在Javascript主场作战,可以存储Javascript复合对象,有着XML不可比拟的优势”。我赞同一半,我觉得这些帖子都是老帖子,XML可以灵活扩展是因为各种语言有支持的其他Jar包,类库等。但自从JSON火起来后,JSON的支持包,类库等,相信每个语言都很多。像Java就有Jackson、goson、json-lib、FastJson等等多的去了。
编码难度:XML有有DOM,SAX,STAX等解析技术,JSON也有我上面说的那些,都OK。
解码难度:同上。
解码编码效率:呵呵!解析XML有专用CPU、你造吗?
下面给一个Demo

XML Demo

<?xml version="1.0" encoding="utf-8"?>
<country><name>中国</name><province><name>黑龙江</name><citys><city>哈尔滨</city><city>大庆</city></citys></province><province><name>广东</name><citys><city>广州</city><city>深圳</city><city>珠海</city></citys></province><province><name>台湾</name><citys><city>台北</city><city>高雄</city></citys></province><province><name>新疆</name><citys><city>乌鲁木齐</city></citys></province>
</country>

JSON Demo

{"name": "中国","province": [{"name": "黑龙江","citys": {"city": ["哈尔滨","大庆"]}},{"name": "广东","citys": {"city": ["广州","深圳","珠海"]}},{"name": "台湾","citys": {"city": ["台北","高雄"]}},{"name": "新疆","citys": {"city": ["乌鲁木齐"]}}]
}

JSON 是什么?它能带来什么?它和 XML 比较?相关推荐

  1. controller接收json数据_SpringBoot实战(二):SpringMvc接收xml请求

    强烈推荐一个大神的人工智能的教程:http://www.captainbed.net/zhanghan [前言] 最近在对接一个第三方系统,需要接收第三方系统的回调,而且格式为XML形式,之前自己一般 ...

  2. json从立地到成佛

    文章目录 诞生于JavaScript,json的前世今生 json含义 json诞生 搞清json兄弟姐妹,看清区别 json VS xml 小小翻译官,json的应用 前端ajax+json异步传输 ...

  3. 数组转json去除首尾引号_诞生于JavaScript,json的前世今生

    诞生于JavaScript,json的前世今生 json含义 在开始之前,问个问题,什么是json? a:我猜它应该是某一门高深的技术(语重心长) b:json这个词为啥谷歌翻译?是啥新词语嘛?是不是 ...

  4. dubbox开发rest+json指南【转】

    http://dangdangdotcom.github.io/dubbox/rest.html 目录 概述 REST的优点 应用场景 快速入门 标准Java REST API:JAX-RS简介 RE ...

  5. C# json解析字符串总是多出双引号_json从立地到成佛

    本文原创作者bigsai(同公众号),本文以浅显易懂的方式给大家讲解自己所认知的json,如果有错误或者不准确地方还请大家给出指正,另外本文以关卡课程的方式在博学谷也是免费开放的,大家也可通过关卡方式 ...

  6. Json学习总结(7)——JSON为什么是数据交换格式的首选

    一.XML 在讲JSON之前,我觉得有必要先带大家了解一下XML(Extensible Markup Language 可扩展标记语言),因为JSON正在慢慢取代XML. 1.XML起源 早期Web发 ...

  7. 将 键值对的数据 拼成 json 格式的 串

    https://developer.mozilla.org/zh-cn/Using_native_JSON json键值对逆置 在某些特殊场景需要将JSON的键值对倒置(Inverting),以达到业 ...

  8. 语言的魅力 - JSON的发展史

    文章目录 一.人类的信息传播革命 第一次信息传播革命是语言传播的诞生:提高了人类信息传播的质量.速度与效率. 第二次信息传播革命是文字传播的诞生:使得人类的信息传播革命第一次突破时间.空间的限制,得以 ...

  9. web前端之后的4天(Ajax,json,redis,maven)

    web前端之后的10天(Ajax,json,redis,maven) day2(还是前端的内容) 1.AJAX 2.JSON AJAX: 1.概念:ASynchronous JavaScrip And ...

  10. 详解电子表格中的json数据:序列化与反序列化

    从XML到JSON 当下应用开发常见的B/S架构之下,我们会遇到很多需要进行前后端数据传输的场景.而在这个传输的过程中,数据通过何种格式传输.方式是否迅速便捷.书写方式是否简单易学,都成为了程序员在开 ...

最新文章

  1. python装饰器的案例_Python之装饰器的实例
  2. java创建文件夹代码_Java创建文件夹及文件实例代码
  3. html5弹窗全屏,jQuery炫酷全屏模态窗口插件
  4. 了解OAuth2令牌认证
  5. java8-4 多态的练习以及题目
  6. 13-mysql-子查询
  7. 实战 | 后端日志的前世今生
  8. ArcGIS pro 发布地图服务(一)动态地图服务
  9. php报错 Function name must be a string in xxxx
  10. 哪些Amazon erp是可以免费使用的?
  11. 【详解】指令系统中跳转指令与OF,SF,CF,ZF的关系
  12. 彩光价格一般是多少_复合彩光祛痘印价格多少钱?
  13. 155个JavaScript基础问题(126-135)
  14. 固定资产管理mysql_固定资产管理系统数据库
  15. 七牛云实现视频拼接和转码
  16. 联发科AioT平台处理器i300介绍
  17. 佳博Gprinter S-4331 打印机驱动
  18. 一些经典但惊人的知识
  19. 鸿蒙系统1007鸿蒙系统,1007 燃爆 | 华为“鸿蒙”真的来了!看完这些商标来历,网友们又激动了...
  20. 2022-5-25 Leetcode 134.加油站

热门文章

  1. 爬虫python代码广告_零基础掌握百度地图兴趣点获取POI爬虫(python语言爬取)(代码篇)...
  2. 学生出勤率平时成绩java_《javaweb应用开发》课程标准.doc
  3. php插入成功数据不显示,PHP插入数据不成功,什么原因呢?
  4. OpenCV文字绘制支持中文显示
  5. Netty ByteBuf(图解之 2)| 秒懂
  6. Netty3之ServerBootstrap分析
  7. 二、在VMware中搭建PHP集成环境(lamp/lnmp/lanmp)
  8. Linux下载安装一个源码包
  9. php入门02-数组
  10. 《Android游戏开发详解》一3.1 构造方法