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架构之下,我们会遇到很多需要进行前后端数据传输的场景.而在这个传输的过程中,数据通过何种格式传输.方式是否迅速便捷.书写方式是否简单易学,都成为了程序员在开 ...
最新文章
- python装饰器的案例_Python之装饰器的实例
- java创建文件夹代码_Java创建文件夹及文件实例代码
- html5弹窗全屏,jQuery炫酷全屏模态窗口插件
- 了解OAuth2令牌认证
- java8-4 多态的练习以及题目
- 13-mysql-子查询
- 实战 | 后端日志的前世今生
- ArcGIS pro 发布地图服务(一)动态地图服务
- php报错 Function name must be a string in xxxx
- 哪些Amazon erp是可以免费使用的?
- 【详解】指令系统中跳转指令与OF,SF,CF,ZF的关系
- 彩光价格一般是多少_复合彩光祛痘印价格多少钱?
- 155个JavaScript基础问题(126-135)
- 固定资产管理mysql_固定资产管理系统数据库
- 七牛云实现视频拼接和转码
- 联发科AioT平台处理器i300介绍
- 佳博Gprinter S-4331 打印机驱动
- 一些经典但惊人的知识
- 鸿蒙系统1007鸿蒙系统,1007 燃爆 | 华为“鸿蒙”真的来了!看完这些商标来历,网友们又激动了...
- 2022-5-25 Leetcode 134.加油站
热门文章
- 爬虫python代码广告_零基础掌握百度地图兴趣点获取POI爬虫(python语言爬取)(代码篇)...
- 学生出勤率平时成绩java_《javaweb应用开发》课程标准.doc
- php插入成功数据不显示,PHP插入数据不成功,什么原因呢?
- OpenCV文字绘制支持中文显示
- Netty ByteBuf(图解之 2)| 秒懂
- Netty3之ServerBootstrap分析
- 二、在VMware中搭建PHP集成环境(lamp/lnmp/lanmp)
- Linux下载安装一个源码包
- php入门02-数组
- 《Android游戏开发详解》一3.1 构造方法