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. 数组(在中括号中)

相关推荐

  1. JsonProtobuf区别详细分析

    2024-06-12 08:14:02       26 阅读
  2. xml,jsonprotobuffer

    2024-06-12 08:14:02       32 阅读
  3. Golang中jsonjsoniter的区别

    2024-06-12 08:14:02       59 阅读
  4. <span style='color:red;'>protobuf</span>

    protobuf

    2024-06-12 08:14:02      53 阅读
  5. Protobuf详解及入门指南

    2024-06-12 08:14:02       34 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-06-12 08:14:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-06-12 08:14:02       100 阅读
  3. 在Django里面运行非项目文件

    2024-06-12 08:14:02       82 阅读
  4. Python语言-面向对象

    2024-06-12 08:14:02       91 阅读

热门阅读

  1. 一五二、go缓存GCache和Go-Redis

    2024-06-12 08:14:02       30 阅读
  2. react 0至1 【jsx】

    2024-06-12 08:14:02       32 阅读
  3. 一个有趣的c++案例

    2024-06-12 08:14:02       22 阅读
  4. “手撕”二叉树的OJ习题

    2024-06-12 08:14:02       24 阅读
  5. jQuery Ajax 基本用法 附带Fetch API

    2024-06-12 08:14:02       29 阅读
  6. cd和pwd命令

    2024-06-12 08:14:02       26 阅读
  7. Date类

    2024-06-12 08:14:02       24 阅读
  8. LINUX

    LINUX

    2024-06-12 08:14:02      29 阅读
  9. Mongodb学习

    2024-06-12 08:14:02       27 阅读