当前位置:   article > 正文

Json和Protobuf区别详细分析

Json和Protobuf区别详细分析

JSON和protobuf分析:

(1)protobuf

首先,Json在windows平台或者是Linux平台提供了大量的API函数,方便直接对其进行使用。

protobuf是谷歌开发的一种数据传输格式,比json的数据量更小,也更对象化。

protobuf不是像JSON直接明文,这个是定义对象结构,然后由protobuf库去把对象转换成二进制,用的时候再自动反解过来的。传输对于我们来说是透明的,我们只管传输的对象就可以了。

protobuf是一种与语言无关、平台无关、可扩展的序列化结构数据的方法,它可用于(数据)通信协议、数据存储等。protobuf是一种灵活、自动化机制的结构数据序列化方法,存储空间更小(二进制流)。你可以定义数据的结构,然后使用特殊生成的源代码在各种数据流中使用各种语言进行编写和读取结构数据。将字段本身的value值进行序列化传输即可(二进制转换)。

使用protobuf的第一步是定义一个proto文件,

syntax = "proto3";//指定版本为proto3,默认为proto2 message SearchRequest { string query = 1; int32 page_number = 2; repeated int32 result = 3; } message关键字是定义的文件名,而 string、int32则是预定的字段类型,repeated则是描述字段为可重复任意多次的字段

Protobuf的做法是,为每一种语言提供一个生成器protoc。通过使用protoc则可以根据.proto文件生成一组对应的源文件。

(2)Json

Json文件的语法规则:

1、每一条数据通过key:value的形式保存,如:"name":"lsx"

2、数据之间通过逗号分离,如"name":"lsx","age":16

3、花括号用于保存对象,如:"info":{"name":"lsx","age":16}

4、中括号用于保存数组,如 "info":["name":"lsx","age":16]

5、一个数组中可以包含多个对象,一个对象中也可以包含多个数组。

JSON值的类型
  1. 数字(整型或浮点型表示)

  2. 字符串(在双引号中)

  3. 逻辑值(true/false)

  4. 对象(在花括号中)

  5. 数组(在中括号中)

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/菜鸟追梦旅行/article/detail/733861
推荐阅读
相关标签
  

闽ICP备14008679号