JSON 是什么?它能带来什么?它和 XML 比较?
一、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 比较?相关推荐
- controller接收json数据_SpringBoot实战(二):SpringMvc接收xml请求
强烈推荐一个大神的人工智能的教程:http://www.captainbed.net/zhanghan [前言] 最近在对接一个第三方系统,需要接收第三方系统的回调,而且格式为XML形式,之前自己一般 ...
- json从立地到成佛
文章目录 诞生于JavaScript,json的前世今生 json含义 json诞生 搞清json兄弟姐妹,看清区别 json VS xml 小小翻译官,json的应用 前端ajax+json异步传输 ...
- 数组转json去除首尾引号_诞生于JavaScript,json的前世今生
诞生于JavaScript,json的前世今生 json含义 在开始之前,问个问题,什么是json? a:我猜它应该是某一门高深的技术(语重心长) b:json这个词为啥谷歌翻译?是啥新词语嘛?是不是 ...
- dubbox开发rest+json指南【转】
http://dangdangdotcom.github.io/dubbox/rest.html 目录 概述 REST的优点 应用场景 快速入门 标准Java REST API:JAX-RS简介 RE ...
- C# json解析字符串总是多出双引号_json从立地到成佛
本文原创作者bigsai(同公众号),本文以浅显易懂的方式给大家讲解自己所认知的json,如果有错误或者不准确地方还请大家给出指正,另外本文以关卡课程的方式在博学谷也是免费开放的,大家也可通过关卡方式 ...
- Json学习总结(7)——JSON为什么是数据交换格式的首选
一.XML 在讲JSON之前,我觉得有必要先带大家了解一下XML(Extensible Markup Language 可扩展标记语言),因为JSON正在慢慢取代XML. 1.XML起源 早期Web发 ...
- 将 键值对的数据 拼成 json 格式的 串
https://developer.mozilla.org/zh-cn/Using_native_JSON json键值对逆置 在某些特殊场景需要将JSON的键值对倒置(Inverting),以达到业 ...
- 语言的魅力 - JSON的发展史
文章目录 一.人类的信息传播革命 第一次信息传播革命是语言传播的诞生:提高了人类信息传播的质量.速度与效率. 第二次信息传播革命是文字传播的诞生:使得人类的信息传播革命第一次突破时间.空间的限制,得以 ...
- web前端之后的4天(Ajax,json,redis,maven)
web前端之后的10天(Ajax,json,redis,maven) day2(还是前端的内容) 1.AJAX 2.JSON AJAX: 1.概念:ASynchronous JavaScrip And ...
- 详解电子表格中的json数据:序列化与反序列化
从XML到JSON 当下应用开发常见的B/S架构之下,我们会遇到很多需要进行前后端数据传输的场景.而在这个传输的过程中,数据通过何种格式传输.方式是否迅速便捷.书写方式是否简单易学,都成为了程序员在开 ...
最新文章
- sql2005 Agent XPs 选项释义
- truncate报ORA-02266错“唯一/主键被启用的外部关键字引用”解决方法
- ROS(Robot Operating System)笔记 : 1.使用launch file在gazebo中生成urdf机器人
- 利用linux curl爬取网站数据
- Android开机画面显示
- C语言入门的三个简易程序
- Sigmoid函数简介
- 新世纪版五笔字根背诵
- pdf打印机有什么功能
- 下载好的IDEA双击打不开,解决方法
- php截取部分pdf,如何将一个pdf文档拆分成多个
- 导数的概念和求导法则
- Linux多窗口终端使用、shell快捷键以及修改快捷键
- 市面上常见的手机分辨率
- 使用 gfortran 编译 CALPUFF
- Java学习方法的一点个人见解-完整版
- 上班一个月挣10万,居然全靠它...
- weblogicT3反序列化之CVE-2017-3248CVE-2018-2628CVE-2018-3245
- 51单片机 DHT11+LCD12864温湿度显示 + Proteus仿真
- 浅谈集合List,Set以及Map集合的特点及区别