Go:数据格式

数据交换格式简介

1. 简介 

            A. 分布式系统

            B. 打包和解包操作

            C. 传输模式:1. 网络传输,API接口。2. 文件传输。

2. JSON数据格式

            a. 对象, key-value形式。{}

            b. 数组,[]

{
    "dates":{
        "date":[
            {
                "id":"1",
                "name":"JSON",
                "abb":"JavaScript Object Notation"
            },
            {
                "id":"2",
                "name":"XML",
                "abb":"eXtensible Markup Language"
            },
            {
                "id":"3",
                "name":"YAML",
                "abb":"Yet Another Markup Language"
            }
        ]
    }
}

3. 实例代码

            A. Marshal=>序列化

            B. UnMarshal=>反序列化 

            C. 应用场景:Api接口

XML数据交换格式

4. 简介

            A. 可扩展标记语言。

            B. 声明、根标签、子元素、属性

<?xml version="1.0" encoding="UTF-8" ?>
<dates>
    <date>
        <id>1</id>
        <name>JSON</name>
        <abb>JavaScript Object Notation</abb>
    </date>
    <date>
        <id>2</id>
        <name>XML</name>
        <abb>eXtensible Markup Language</abb>
    </date>
    <date>
        <id>3</id>
        <name>YAML</name>
        <abb>Yet Another Markup Language</abb>
    </date>
</dates>

5. 实例代码

            A. Marshal=>序列化

            B. UnMarshal=>反序列化

            C. 应用场景:配置文件以及webservice, 比如soap协议

msgpack数据交换格式

6. 二进制的json协议

            A. 性能更快。

            B. 更省空间。

           

7. 应用实战

            A. Marshal=>序列化

            B. UnMarshal=>反序列化

            C. 应用场景:Api通讯

protobuf数据交换格式

8. Protobuf协议简介

            A. Google推出的数据交换格式。

            B. 二进制的。 C. 基于代码自动生成

9. Protobuf开发流程

            A. IDL编写

            B. 生成只定语言的代码

            C. 序列化和反序列化

10.IDL编写

11.IDL编写

            1. 枚举类型

enum EnumAllowingAlias {
    UNKNOWN = 0;
    STARTED = 1;
    RUNNING = 2;
}

            2. 结构体类型

message Person {
    //后面的数字表示标识号
    int32 id = 1;
    string name = 2;
    //repeated表示可重复
    //可以有多个手机
    repeated Phone phones = 3;
}

12. Golang应用

            A. 安装protoc编译器,解压后拷贝到GOPATH/bin目录下

            B. https://github.com/google/protobuf/releases

            C. 安装golang代码插件, go get -u github.com/golang/protobuf/protoc-gen-go

14. Golang实战

            A. 生成代码, protoc --go_out=. *.proto

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值