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

如何从nlohmann::json动态获取result对象首个键值对?

处理nlohmann::json动态键值的实现方法

要提取result对象中的第一个动态键及其对应的整数数组,直接通过迭代器访问对象的第一个元素即可,具体实现步骤如下:

  1. 获取查询返回的result对象
    假设你已经拿到了查询返回的完整nlohmann::json数据,先定位到result节点:

    nlohmann::json response = /* 查询返回的JSON数据 */;
    auto& result_obj = response["result"];
    
  2. 校验对象合法性
    先确保result是一个非空的JSON对象,避免后续操作出错:

    if (!result_obj.is_object() || result_obj.empty()) {
        // 处理错误逻辑,比如抛出异常、返回错误码等
        return;
    }
    
  3. 提取第一个键和对应数组
    通过begin()获取对象第一个元素的迭代器,分别提取键和数组:

    auto first_entry = result_obj.begin();
    std::string a = first_entry->first;  // 第一个动态键存入变量a
    
    // 将对应的整数数组存入变量b,同时可添加类型校验
    if (first_entry->second.is_array()) {
        std::vector<int> b = first_entry->second.get<std::vector<int>>();
        // 后续使用变量a和b的逻辑
    } else {
        // 处理值不是整数数组的错误情况
    }
    

补充说明

  • 如果需要保持键的插入顺序(而非默认的字典序),可以使用nlohmann::ordered_json替代nlohmann::json,上述代码逻辑完全通用。
  • get<std::vector<int>>()会在值类型不匹配时抛出异常,若需避免异常,可改用get_to()并检查返回值,或者提前用is_number_integer()遍历数组元素做类型校验。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 19:35:16