【C++/Boost】 新增的JSON Library简介

本文介绍了Boost库1.75.0版本中新增的JSON库,包括常用的类型、解析和序列化的方法。解析部分详细讲解了parse()函数和stream_parser的使用,而序列化则提到了serialize()函数和serializer类。文章提供了简单的使用示例,帮助读者快速上手Boost JSON库。
摘要由CSDN通过智能技术生成

boost最近的1.75.0版本新增了三个库,分别是专门用于json相关工作的库JSON,header-only的错误处理库LEAF,实现了基本的reflection的库PFR。
这里我简单地介绍一下JSON的使用,不包含分配器等的运用,就是个quick到不能再quick的quick look。

这里所有的类型、函数等,没有特别说明,都在boost::json
具体的文档在这里:https://www.boost.org/doc/libs/1_75_0/libs/json/doc/html/index.html


常用的类型

名称 说明
value 用于代表任何JSON数据
object 动态大小的、用于存储key-value对的关联容器
array 动态大小的、用于存储JSON的value的容器
key_value_pair 一个key-value对

基本的使用

解析

boost::json提供了三种比较高级的parser,分别是函数parse()和类parserstream_parser

parse()函数

函数原型:

value parse(
    string_view s,
    error_code& ec,
    storage_ptr sp = {
   },
    parse_options const& opt = {
   });
value parse(
    string_view s,
    storage_ptr sp = {
   },
    parse_options const& opt = {
   });

可见,parse()只需要提供一个包含正确格式的json的字符串就可以返回一个包含全部json信息的value。如果格式不正确,返回的value.is_null()为true
可选的参数是错误代码error_code,指向value的内存的storage_ptr,可选参数opt。

这里介绍一下opt。opt是一个包含了解析选项的结构体,各个选项的用途看名称就知道:

struct parse_options
{
   
	std::size_t max_depth = 32;
	bool allow_comments = false;
	bool allow_trailing_commas = 
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值