You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从RESTinio的REST API查询中获取long、double类型参数?

RESTinio内置数值类型参数转换方法

RESTinio确实提供了内置的数值类型转换功能,不需要手动实现字符串转数值的逻辑。核心是利用query_string_params_t提供的两个关键方法:

1. try_get_value<T>()方法

这个方法会尝试将指定名称的查询参数转换为模板参数T对应的数值类型,返回一个std::optional<T>对象:

  • 如果参数存在且转换成功,optional会包含转换后的值
  • 如果参数不存在或者字符串无法转换为目标类型(比如非数字字符串转double),optional为空

示例代码(转换double类型参数):

const restinio::query_string_params_t qp = restinio::parse_query(req->header().query());

if (auto accept_time_opt = qp.try_get_value<double>("AcceptTime")) {
    double dAcceptTime = *accept_time_opt;
    // 在这里处理转换后的数值
} else {
    // 参数不存在或转换失败的处理逻辑,比如返回错误响应
}

转换long类型参数的示例:

if (auto some_long_opt = qp.try_get_value<long>("SomeLongParam")) {
    long long_val = *some_long_opt;
}

2. get_value_or<T>()方法

如果希望在参数不存在或转换失败时直接使用默认值,可以用这个方法:

const restinio::query_string_params_t qp = restinio::parse_query(req->header().query());
// 若AcceptTime参数无效,dAcceptTime会被设为0.0
double dAcceptTime = qp.get_value_or<double>("AcceptTime", 0.0);

支持的类型

这些转换方法支持绝大多数常用数值类型,包括:

  • 整数类型:int、long、long long、unsigned int等
  • 浮点类型:float、double
  • 布尔类型:bool(会自动识别"true"/"false"、"1"/"0"等字符串)

内容的提问来源于stack exchange,提问作者Dominique

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 18:00:05