Tars微服务框架C++开发之JSON

以下为授权转载的一盎司科技公众号文章


Tars是腾讯开源的基于名字服务的高性能RPC开发框架,也是一套开发模式,接下来我们将简单介绍C++开发服务中,JSON数据类型的使用,具体说明可参考官方文档(https://doc.tarsyun.com)。

以下将Tars框架中JSON处理的相关类,封装为更易于使用的Json和JsonParser类,并以一个示例来作为参考。

示例代码地址:

GitHub地址:https://github.com/iounce/tars-demo

Gitee地址:https://gitee.com/iounce_admin/tars-demo

环境

  • Windows操作系统:Windows10(21H2,19044.1766)

  • Linux操作系统:Ubuntu 22.04 LTS

  • Docker Desktop:v4.10.1

  • Tars framework: 3.0.14

Tars框架JSON类

Tars框架自带JSON处理类,主要包括tars::JsonInput,tars::JsonOutput,tars::TC_Json,tars::JsonValue,tars::JsonValueObj等,在编译Tars协议文件后自动生成的头文件中比较常见,如下所示:

图片

接下来,我们将上述JSON常用类封装为更易于使用的处理类。

Json封装类

自定义封装类Json主要用于构造JSON格式的数据,然后可以输出字符串格式的json内容,主要包含各种类型的addValue函数,如int,double,string等。具体如下:

图片

其中,主要使用JsonValueObj类来保存数据,充分利用JsonOutput类丰富的转换函数来构造各类json数据类型:

图片

最后使用TC_Json类将构造的JSON数据转换为字符串:

图片

JsonParser封装类

自定义封装类JsonParser主要用于解析JSON格式的字符串,然后可以获取各类JSON类型的数据,主要包含各类getValue函数。具体如下:

图片

其中主要使用JsonValueObj类来保存解析后的JSON数据,充分利用JsonInput类丰富的转换函数来获取各类json数据类型:

图片

编写测试

  • 构造并输出JSON字符串:

图片

  • 解析并获取JSON数据:

图片

说明:

  1. 示例程序基于docker安装的Tars框架来编译,可以使用docker命令拷贝文件,如:

    docker cp -a D:\iounce\src\tars\TarsUtils\json 84d040a770c1:/root/TarsUtils

  2. Tars中大量使用了智能指针,方便内存管理,如JsonValueObjPtr。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值