数据交换格式 - PB(protocol buffer),xml,json,array
目录
PB
PB vs xml
PB vs json
json
json vs xml
xml
数组
PB
扩充容易,
二进制
序列化简单
ProtocolBuffers-Google's data interchange format
一种语言无关、平台无关、扩展性好的用于通信协议、 数据存储的结构化数据串行化方法。
类似 JSON, XML
https://github.com/google/protobuf/
PB vs xml
传输时相同内容
PB比xml小3~10倍
PB比xml快20~100倍
PB比xml更少的歧义
PB比xml更方便生成数据存取类
PB vs json
对于较多信息的存储和较大文件,protocol buffer的写入和解析效率明显高很多。但是JSON格式的可读性明显要好。
PB | json | |
数据结构支持 |
较复杂结构 |
简单结构 |
数据格式 |
二进制 |
文本 |
数据大小 |
小,json大小的1/3左右 |
一般 |
解析效率 |
快,是json解析速度的3-10倍 |
一般 |
可读性 |
一般,需要.proto文件,否则读代码较难理解 |
好,自描述的 |
语言支持 |
一般,官方支持c/java/python oc/php有开源库 |
多 |
开发成本 |
一般,需要针对每个接口生成一个proto类 |
低 |
扩展性 |
相同,增加或删除字段均可做兼容 |
相同,增加或删除字段均可做兼容 |
安全性 |
天然加密,无法破解接口 |
无,需要自行加密 |
应用性 |
知名度略差,推广中 |
知名度高,推广好 |
json
json:(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式。
json vs xml
json | xml | |
数据量 | 轻量级 | 重量级 |
占用带宽 | 占用带宽少,已于压缩 | 占用带宽多 |
用途 | 多用于数据交互 | 多用于配置文件 |
解析方法 | 可用jackson,gson等方法解析 | 可用dom,sax,demo4j等方式解析。 |
层次结构 | xml的层次结构比json更清晰。 |
xml
xml:Extensible Markup Language,简称XML可扩展,是一种标记语言。
数组
数据交换格式 - PB(protocol buffer),xml,json,array相关推荐
- 数据交换格式Json与XML
什么是数据交换格式: 主流的有Json.XML.HTML. 数据交换格式的应用场景: 移动端(安卓,IOS)通讯方式采用http协议+Json格式的restful风格. 很多互联网公司都是用Http协 ...
- XML和JSON两种数据交换格式的比较
目前,在web开发领域,主要的数据交换格式有XML和JSON,对于XML相信每一个web developer都不会感到陌生: 相比之下,JSON可能对于一些新步入开发领域的新手会感到有些陌生,也可能你 ...
- Json学习总结(7)——JSON为什么是数据交换格式的首选
一.XML 在讲JSON之前,我觉得有必要先带大家了解一下XML(Extensible Markup Language 可扩展标记语言),因为JSON正在慢慢取代XML. 1.XML起源 早期Web发 ...
- JSON——IT技术人员都必须要了解的一种数据交换格式
JSON作为目前Web主流的数据交换格式,是每个IT技术人员都必须要了解的一种数据交换格式.尤其是在Ajax和REST技术的大行其道的当今,JSON无疑成为了数据交换格式的首选! 今天大家就和猪哥一起 ...
- Ajax学习(3)XMLHttpRequest的使用+数据交换格式(JSON)
XMLHttpRequest的使用 XMLHttpRequest(简称 xhr)是浏览器提供的 Javascript 对象,可以请求服务器上的数据资源.(jQuery 中的 Ajax 函数,就是基于 ...
- 数据交换格式与SpringIOC底层实现
课程目标 XML和JSON Java反射机制 手写SpringIOC 什么是数据交换格式 客户端与服务器常用数据交换格式xml.json.html 数据交换格式用场景 移动端(安卓.IOS)通讯方式采 ...
- Java 数据交换格式反射机制SpringIOC原理分析
数据交换格式&反射机制&SpringIOC原理分析 什么是数据交换格式? 数据交换格式使用场景 JSON简单使用 什么是JSON? JSON格式的分类 常用JSON解析框架 使用fas ...
- 【太极创客esp8266自学笔记】数据交换格式:JOSN
文章目录 文章目录 前言 二.构成 1.基本元素 三.JSON解析 总结 参考 前言 最近实习,智能家居相关,需要用esp8266开发.之前没学习过8266,b站上找到[太极创客esp8266]的相关 ...
- XML和JSON 数据交换格式
为什么80%的码农都做不了架构师?>>> 一.什么是数据交换格式? 客户端与服务器常用数据交换格式xml.json.html 二.数据交换格式应用场景 移动端(安卓.IOS)通 ...
最新文章
- spring boot使用yaml替代properties
- 读取无线手柄数据_xbox series x/s 手柄开箱
- 30jquery-qrcode生成二维码
- java中的多线程的示例
- linux 建立交叉编译环境变量,ARM-Linux-gcc-4.4.3交叉编译环境终于搭建
- Web前端期末大作业--响应式性感美女模特博客网页设计(HTML+CSS+JavaScript)实现
- 历代Windows版本
- win10 计算机 权限,介绍电脑windows10管理员权限开启的4种方法
- Win7笔记本开启WiFi
- win10更新并关机怎么取消
- 分享塑胶模具设计思路与流程,建议收藏!
- CSU-ACM2017暑期训练5-三分 D - Toxophily HDU - 2298
- 如何不翻墙访问ChatGpt?
- linux文件目录详解
- js判断当前设备和获取设备、浏览器宽高
- 微信小程序+阿里云+stm32f407的一个项目
- 中国联通:2018年7月沃指数之移动应用APP排行榜
- gcc后面既有-c又有-o是什么意思?
- 量子计算机或需要重新设计,宇宙射线对量子计算的威胁超乎想象
- 计算机软件为什么要升级呢,到底电脑要不要升级呢,看完你就懂了
热门文章
- 人力资源管理系统的演化
- Walgreens以myWalgreens重塑美国最大的卫生健康忠诚度计划,为顾客带来更加丰富的福利
- 我的笔记本插上了网线 显示 未识别的网络无Internet访问 怎么弄?
- i710700和i510400f哪个好
- Python 获取目录下的文件列表,并自然排序
- 快速判断一个数是否是2的幂次方,若是,并判断出来是多少次方!
- rowKey设计原则
- C# 调用高德地图API获取经纬度以及定位,JS获取定位【万字详解附完整代码】
- 专业音视频播放器:Elmedia Video Player Pro mac中文版
- [再寄小读者之数学篇](2014-06-23 积分不等式 [中国科学技术大学2013年高等数学B 考研试题])...