一、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. Visual Studio 2017创建XAML文件
  2. c程序设计语言用什么编译器,什么是编译器(编程软件)
  3. 定时发布任务,在global.asax中获取文件的物理路径的方法
  4. 手把手教你发布一个Python包
  5. Android 数据访问之SharedPreference demo+笔记
  6. 利用Auto Deploy 部署ESXi 5
  7. 20190223深信服测试一面回顾
  8. 数据库-MySQL约束-笔记
  9. excel格式和csv格式的区别(关键差异)
  10. Gmail,OutLook邮箱基于Oauth2.0协议授权登录邮箱客户端
  11. 【vue路由跳转外部链接】
  12. 什么查重软件比较好用?
  13. 使用 biblatex 进行参考文献管理
  14. centos7安装python3.7.4_基于centos7 安装python3.6.4出错的解决方法
  15. 网络安全kali渗透学习 web渗透入门 Metasploit---基于tcp协议收集主机信息
  16. Oriented Response Networks 论文笔记
  17. vue格式化数字(已万、千万、亿结尾)
  18. JAVA实现随机生成航班数据
  19. 有理有据地展望未来 Web 开发体验
  20. 一个数的因子、因数的区别

热门文章

  1. Scikit-learn数据预处理之范数缩放NormalizerScaler
  2. 斯坦福python中文分词stanza
  3. 阿里云 docker php mysql_PHP开发环境02 - 阿里云Ubuntu使用Docker配置PHP环境(只限于学习)...
  4. darknet: ./src/parser.c:348: parse_region: Assertion `l.outputs == params.inputs' failed.yolov3训练问题
  5. FPGA经验分享——时序收敛之路
  6. 20145209刘一阳《JAVA程序设计》第七周课堂测试
  7. 干货 | OneAPM研发总监高海强:百万并发云压测平台的关键技术
  8. Linux 学习笔记 (一)在VMware 中安装 Ubtuntu 以及 VMware tools
  9. spring注解controller示例
  10. virtualBox下安装Linux6.4