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

如何在Visual C++2013中用cpprestsdk将字符串转为web::json并遍历宠物集合?

嘿,刚好我之前用cpprestsdk处理过类似的场景,给你梳理下具体步骤,保证能搞定转JSON和遍历的需求:

步骤1:将API返回的字符串解析为web::json::value

cpprestsdk提供了现成的解析方法,直接用web::json::value::parse就能把字符串转成JSON对象。不过要记得处理解析异常——毕竟第三方API返回的内容可能格式不规范,很容易触发错误。

示例代码:

#include <cpprest/json.h>
#include <stdexcept>
#include <string>
#include <iostream>

// 假设你已经从第三方API拿到了返回字符串
std::string api_response = "这里替换成你实际拿到的API返回字符串";

web::json::value json_result;
try {
    // 把std::string转成cpprestsdk用的utility::string_t,再解析成JSON
    json_result = web::json::value::parse(utility::conversions::to_string_t(api_response));
} catch (const web::json::json_exception& e) {
    std::cerr << "JSON解析出错啦:" << e.what() << std::endl;
    // 这里可以加错误处理逻辑,比如返回或者重试
    return;
}
步骤2:遍历"pet collection"数组

首先得确认JSON里确实存在这个字段,而且它是数组类型,然后就可以逐个遍历里面的元素了。

示例代码:

// 检查"pet collection"字段是否存在且是数组
if (json_result.has_field(U("pet collection")) && json_result[U("pet collection")].is_array()) {
    web::json::array pet_collection = json_result[U("pet collection")].as_array();
    
    // 遍历数组中的每一个宠物对象
    for (const auto& pet_item : pet_collection) {
        // 举个例子,获取宠物名称字段
        if (pet_item.has_field(U("name")) && pet_item[U("name")].is_string()) {
            utility::string_t pet_name = pet_item[U("name")].as_string();
            // 转成std::string方便后续处理
            std::string name_str = utility::conversions::to_utf8string(pet_name);
            std::cout << "宠物名称:" << name_str << std::endl;
        }
        
        // 其他字段同理,比如年龄、类型
        if (pet_item.has_field(U("age")) && pet_item[U("age")].is_number()) {
            int pet_age = pet_item[U("age")].as_integer();
            std::cout << "宠物年龄:" << pet_age << std::endl;
        }
    }
} else {
    std::cerr << "API返回的JSON里找不到有效的'pet collection'数组哦" << std::endl;
}

小提示:cpprestsdk里的字符串类型是utility::string_t,它在不同平台上可能是宽字符或窄字符,所以用utility::conversions里的方法做转换会更稳妥,避免编码问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 10:32:32