一、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. sql2005 Agent XPs 选项释义
  2. truncate报ORA-02266错“唯一/主键被启用的外部关键字引用”解决方法
  3. ROS(Robot Operating System)笔记 : 1.使用launch file在gazebo中生成urdf机器人
  4. 利用linux curl爬取网站数据
  5. Android开机画面显示
  6. C语言入门的三个简易程序
  7. Sigmoid函数简介
  8. 新世纪版五笔字根背诵
  9. pdf打印机有什么功能
  10. 下载好的IDEA双击打不开,解决方法
  11. php截取部分pdf,如何将一个pdf文档拆分成多个
  12. 导数的概念和求导法则
  13. Linux多窗口终端使用、shell快捷键以及修改快捷键
  14. 市面上常见的手机分辨率
  15. 使用 gfortran 编译 CALPUFF
  16. Java学习方法的一点个人见解-完整版
  17. 上班一个月挣10万,居然全靠它...
  18. weblogicT3反序列化之CVE-2017-3248CVE-2018-2628CVE-2018-3245
  19. 51单片机 DHT11+LCD12864温湿度显示 + Proteus仿真
  20. 浅谈集合List,Set以及Map集合的特点及区别

热门文章

  1. 窗口分析函数_2_生成同值重复排名序号
  2. jaVa工程师朱璇_使用QTP对Silverlight应用进行自动化测试的研究与实践
  3. FPGA与MCU,DSP(如C6000,C5000等)等设计思想的异同
  4. Linux中断处理流程
  5. 把javascript中的json对象传到action的list里的方法
  6. Linux Shell脚本去掉几类常见文件中的注释
  7. 用eclipse修改web工程的访问路径
  8. 开启win7 FTP 服务 无法登陆的原因
  9. 请指点一下,讨论也可以,顶也有分
  10. 修改 ASP.NET 请求队列的限制