结构化数据协议解析 json、xml、tlv、protobuf

结构化数据是为了方便传输和存储:传输接收方能解析出发送方发送的数据,存储读取者可以解析出写入者写入的数据

目前结构化数据协议主要有json,xml,tlv,protobuf等。

对比分析如下:

(todo:此处暂时缺个表)

它们分别长这样:

1. json:

{ "student":[ { "name":"张三", "age":"30", "sex":"男" } { "name":"李四", "age":"25", "sex":"男" } { "name":"王五", "age":"27", "sex":"女" } ] }

2. xml:

<?xml version="1.0" encoding="utf-8"?>
<students>
    <student>
        <name>张三</name>
        <age>30</age>
        <sex>男</sex>
    </student>
    <student>
        <name>李四</name>
        <age>25</age>
        <sex>男</sex>
    </student>
    <student>
        <name>王五</name>
        <age>27</age>
        <sex>女</sex>
    </student>
</students>

3. tlv:

4. protobuf:

结构体数据

总结下:

1.json,xml差不多,可以一眼看到字段,好处是对用户比较友好,json11提供面向对象的编解码接口,处理比较方便,坏处是数据裸露可以被人轻易获取,如果通过网络传输,性能也存疑。一般调用restful接口携带json字段。写配置文件使用json或者xml格式。

2.TLV,适应网络传输,但是貌似没有成熟的编解码接口需要自己写,用的好不好看水平。

3.protobuf,谷歌提供工具生成代码,发送和接收两端需要维护同一份结构体字段。体积小,一般pcie传输使用。

4.还有一种是模板迭代器类型map表实现C++多个插件之间的数据传输,这种方式在自己模块的代码中使用最方便直接,但是同样需要注意get之前必须要set,此处多发崩溃问题。

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值