NexusForce 1.0.0
A Modern C++ Library with extended functionality, web components, and utility libraries
载入中...
搜索中...
未找到
json_builder类 参考

JSON配置构建器 更多...

#include <json_builder.hpp>

Public 成员函数

json_builderbegin_object ()
 开始一个JSON对象
json_builderbegin_array ()
 开始一个JSON数组
json_builderend_object ()
 结束当前JSON对象
json_builderend_array ()
 结束当前JSON数组
json_builderkey (const string &key)
 设置当前对象的键名
json_buildervalue (nullptr_t np)
 设置null值
json_buildervalue (const string &value)
 设置字符串值
json_buildervalue (const char *value)
 设置C字符串值
json_buildervalue (const string_view value)
 设置字符串视图值
json_buildervalue (const double value)
 设置双精度浮点数值
json_buildervalue (const int value)
 设置整数值
json_buildervalue (const bool value)
 设置布尔值
json_buildervalue (unique_ptr< json_value > &&value)
 设置已构建的JSON值
template<typename Iterable>
json_buildervalue (const Iterable &iterable)
 设置可迭代对象的值
json_buildervalue_object (const function< void(json_builder &)> &build_func)
 使用函数式方式构建对象值
json_buildervalue_array (const function< void(json_builder &)> &build_func)
 使用函数式方式构建数组值
unique_ptr< json_valuebuild ()
 构建JSON文档

详细描述

JSON配置构建器

提供流式接口构建JSON配置格式,支持以下特性:

  • 链式调用构建对象和数组
  • 自动类型转换(整数、浮点数、布尔值、字符串)
  • 函数式构建嵌套结构
  • 集合类型自动转换(可迭代对象、映射表)
  • 上下文管理(自动维护当前对象/数组状态)

在文件 json_builder.hpp38 行定义.

成员函数说明

◆ begin_array()

json_builder & json_builder::begin_array ( )

开始一个JSON数组

返回
自身引用,支持链式调用
异常
json_exception当根节点已存在或键名缺失时抛出

创建一个新的JSON数组,并压入上下文栈。 如果当前在顶层,该数组将成为根节点; 否则作为当前上下文的值添加。

◆ begin_object()

json_builder & json_builder::begin_object ( )

开始一个JSON对象

返回
自身引用,支持链式调用
异常
json_exception当根节点已存在或键名缺失时抛出

创建一个新的JSON对象,并压入上下文栈。 如果当前在顶层,该对象将成为根节点; 否则作为当前上下文的值添加。

◆ build()

unique_ptr< json_value > json_builder::build ( )

构建JSON文档

返回
构建完成的JSON值根节点
异常
json_exception当存在未闭合的结构或未完成的键值对时抛出

完成构建过程,返回构建好的JSON值。 调用前必须确保所有对象/数组都已闭合,且没有未完成的键值对。

◆ end_array()

json_builder & json_builder::end_array ( )

结束当前JSON数组

返回
自身引用,支持链式调用
异常
json_exception当没有数组可关闭时抛出

弹出上下文栈顶的数组,返回上一层。 必须与 begin_array 配对使用。

◆ end_object()

json_builder & json_builder::end_object ( )

结束当前JSON对象

返回
自身引用,支持链式调用
异常
json_exception当没有对象可关闭或存在未完成的键值对时抛出

弹出上下文栈顶的对象,返回上一层。 必须与 begin_object 配对使用。

◆ key()

json_builder & json_builder::key ( const string & key)

设置当前对象的键名

参数
key键名
返回
自身引用,支持链式调用
异常
json_exception当不在对象上下文中或键名已设置时抛出

为后续的值设置键名,仅在对象上下文中有效。

引用了 key().

被这些函数引用 key().

◆ value() [1/9]

json_builder & json_builder::value ( const bool value)
inline

设置布尔值

参数
value布尔值
返回
自身引用,支持链式调用
异常
json_exception当上下文无效或键名缺失时抛出

在文件 json_builder.hpp275 行定义.

引用了 make_unique() , 以及 value().

◆ value() [2/9]

json_builder & json_builder::value ( const char * value)
inline

设置C字符串值

参数
valueC字符串
返回
自身引用,支持链式调用
异常
json_exception当上下文无效或键名缺失时抛出

在文件 json_builder.hpp243 行定义.

引用了 value() , 以及 value().

被这些函数引用 value().

◆ value() [3/9]

json_builder & json_builder::value ( const double value)
inline

设置双精度浮点数值

参数
value双精度浮点数
返回
自身引用,支持链式调用
异常
json_exception当上下文无效或键名缺失时抛出

在文件 json_builder.hpp259 行定义.

引用了 make_unique() , 以及 value().

◆ value() [4/9]

json_builder & json_builder::value ( const int value)
inline

设置整数值

参数
value整数
返回
自身引用,支持链式调用
异常
json_exception当上下文无效或键名缺失时抛出

在文件 json_builder.hpp267 行定义.

引用了 make_unique() , 以及 value().

◆ value() [5/9]

template<typename Iterable>
json_builder & json_builder::value ( const Iterable & iterable)
inline

设置可迭代对象的值

模板参数
Iterable可迭代类型
参数
iterable可迭代对象
返回
自身引用,支持链式调用

根据类型自动转换为JSON对象或数组:

  • 映射表类型转换为对象
  • 其他可迭代类型转换为数组

在文件 json_builder.hpp296 行定义.

◆ value() [6/9]

json_builder & json_builder::value ( const string & value)
inline

设置字符串值

参数
value字符串值
返回
自身引用,支持链式调用
异常
json_exception当上下文无效或键名缺失时抛出

在文件 json_builder.hpp235 行定义.

引用了 make_unique() , 以及 value().

◆ value() [7/9]

json_builder & json_builder::value ( const string_view value)
inline

设置字符串视图值

参数
value字符串视图
返回
自身引用,支持链式调用
异常
json_exception当上下文无效或键名缺失时抛出

在文件 json_builder.hpp251 行定义.

引用了 value() , 以及 value().

被这些函数引用 value().

◆ value() [8/9]

json_builder & json_builder::value ( nullptr_t np)
inline

设置null值

参数
np空指针标记
返回
自身引用,支持链式调用
异常
json_exception当上下文无效或键名缺失时抛出

在文件 json_builder.hpp227 行定义.

引用了 make_unique().

被这些函数引用 value(), value(), value(), value(), value(), value() , 以及 value().

◆ value() [9/9]

json_builder & json_builder::value ( unique_ptr< json_value > && value)
inline

设置已构建的JSON值

参数
valueJSON值指针
返回
自身引用,支持链式调用
异常
json_exception当上下文无效或键名缺失时抛出

在文件 json_builder.hpp283 行定义.

引用了 move() , 以及 value().

◆ value_array()

json_builder & json_builder::value_array ( const function< void(json_builder &)> & build_func)

使用函数式方式构建数组值

参数
build_func构建函数,接收json_builder引用
返回
自身引用,支持链式调用

在独立的作用域内构建一个数组,构建完成后自动闭合。

◆ value_object()

json_builder & json_builder::value_object ( const function< void(json_builder &)> & build_func)

使用函数式方式构建对象值

参数
build_func构建函数,接收json_builder引用
返回
自身引用,支持链式调用

在独立的作用域内构建一个对象,构建完成后自动闭合。


该类的文档由以下文件生成: