目录

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有开源库


java/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相关推荐

  1. 数据交换格式Json与XML

    什么是数据交换格式: 主流的有Json.XML.HTML. 数据交换格式的应用场景: 移动端(安卓,IOS)通讯方式采用http协议+Json格式的restful风格. 很多互联网公司都是用Http协 ...

  2. XML和JSON两种数据交换格式的比较

    目前,在web开发领域,主要的数据交换格式有XML和JSON,对于XML相信每一个web developer都不会感到陌生: 相比之下,JSON可能对于一些新步入开发领域的新手会感到有些陌生,也可能你 ...

  3. Json学习总结(7)——JSON为什么是数据交换格式的首选

    一.XML 在讲JSON之前,我觉得有必要先带大家了解一下XML(Extensible Markup Language 可扩展标记语言),因为JSON正在慢慢取代XML. 1.XML起源 早期Web发 ...

  4. JSON——IT技术人员都必须要了解的一种数据交换格式

    JSON作为目前Web主流的数据交换格式,是每个IT技术人员都必须要了解的一种数据交换格式.尤其是在Ajax和REST技术的大行其道的当今,JSON无疑成为了数据交换格式的首选! 今天大家就和猪哥一起 ...

  5. Ajax学习(3)XMLHttpRequest的使用+数据交换格式(JSON)

    XMLHttpRequest的使用 XMLHttpRequest(简称 xhr)是浏览器提供的 Javascript 对象,可以请求服务器上的数据资源.(jQuery 中的 Ajax 函数,就是基于 ...

  6. 数据交换格式与SpringIOC底层实现

    课程目标 XML和JSON Java反射机制 手写SpringIOC 什么是数据交换格式 客户端与服务器常用数据交换格式xml.json.html 数据交换格式用场景 移动端(安卓.IOS)通讯方式采 ...

  7. Java 数据交换格式反射机制SpringIOC原理分析

    数据交换格式&反射机制&SpringIOC原理分析 什么是数据交换格式? 数据交换格式使用场景 JSON简单使用 什么是JSON? JSON格式的分类 常用JSON解析框架 使用fas ...

  8. 【太极创客esp8266自学笔记】数据交换格式:JOSN

    文章目录 文章目录 前言 二.构成 1.基本元素 三.JSON解析 总结 参考 前言 最近实习,智能家居相关,需要用esp8266开发.之前没学习过8266,b站上找到[太极创客esp8266]的相关 ...

  9. XML和JSON 数据交换格式

    为什么80%的码农都做不了架构师?>>>    一.什么是数据交换格式? 客户端与服务器常用数据交换格式xml.json.html 二.数据交换格式应用场景 移动端(安卓.IOS)通 ...

最新文章

  1. spring boot使用yaml替代properties
  2. 读取无线手柄数据_xbox series x/s 手柄开箱
  3. 30jquery-qrcode生成二维码
  4. java中的多线程的示例
  5. linux 建立交叉编译环境变量,ARM-Linux-gcc-4.4.3交叉编译环境终于搭建
  6. Web前端期末大作业--响应式性感美女模特博客网页设计(HTML+CSS+JavaScript)实现
  7. 历代Windows版本
  8. win10 计算机 权限,介绍电脑windows10管理员权限开启的4种方法
  9. Win7笔记本开启WiFi
  10. win10更新并关机怎么取消
  11. 分享塑胶模具设计思路与流程,建议收藏!
  12. CSU-ACM2017暑期训练5-三分 D - Toxophily HDU - 2298
  13. 如何不翻墙访问ChatGpt?
  14. linux文件目录详解
  15. js判断当前设备和获取设备、浏览器宽高
  16. 微信小程序+阿里云+stm32f407的一个项目
  17. 中国联通:2018年7月沃指数之移动应用APP排行榜
  18. gcc后面既有-c又有-o是什么意思?
  19. 量子计算机或需要重新设计,宇宙射线对量子计算的威胁超乎想象
  20. 计算机软件为什么要升级呢,到底电脑要不要升级呢,看完你就懂了

热门文章

  1. 人力资源管理系统的演化
  2. Walgreens以myWalgreens重塑美国最大的卫生健康忠诚度计划,为顾客带来更加丰富的福利
  3. 我的笔记本插上了网线 显示 未识别的网络无Internet访问 怎么弄?
  4. i710700和i510400f哪个好
  5. Python 获取目录下的文件列表,并自然排序
  6. 快速判断一个数是否是2的幂次方,若是,并判断出来是多少次方!
  7. rowKey设计原则
  8. C# 调用高德地图API获取经纬度以及定位,JS获取定位【万字详解附完整代码】
  9. 专业音视频播放器:Elmedia Video Player Pro mac中文版
  10. [再寄小读者之数学篇](2014-06-23 积分不等式 [中国科学技术大学2013年高等数学B 考研试题])...