使用cpprestsdk将字符串转换为web :: json

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用cpprestsdk将字符串转换为web :: json相关的知识,希望对你有一定的参考价值。

我在Visual C ++ 2013中有一个c ++应用程序,它使用cpprestsdk从服务器获取信息。它工作正常(例如here

现在,我正在使用外部第三方API,此API有一个返回字符串的方法,如下所示:

{"result":{"data":[{"PetId":"Pet1","PetName":"Name1","PetCategory":"1"},{"PetId":"Pet2","PetName":"Name2","PetCategory":"2"},{"PetId":"Pet3","PetName":"Name3","PetCategory":"3"}],"code":"200","msg":"Operation succeeded"}}

如何使用cpprestsdk将此字符串转换为web :: json以迭代“宠物集合”?

答案

如果你真的坚持这样做,你必须首先将字符串放入REST SDK的stringstream_t(至少据我所知),所以代码看起来像这样:

web::json::value from_string(std::string const &input) {    
    web::utility::stringstream_t s;

    s << input;
    web::json::value ret = json::value::parse(s);
    return ret;
}

给定一个选择,我将使用CPPRESTSDK来完成REST部分,但使用nlohmann JSON库来处理任务的JSON部分。有了它,任务相当简单:

using json = nlohmann::json;

json parsed_data = json::parse(input);

使用nlohmann库迭代数据变得非常简单:

for (auto const &item : parsed_data["result"]["data"])
    std::cout << "Name: " << item["PetName"] << "	" << 
                 "ID: " << item["PetId"] << "
";

以上是关于使用cpprestsdk将字符串转换为web :: json的主要内容,如果未能解决你的问题,请参考以下文章

使用 cpprestsdk (casablanca) 和 asio 在应用程序中异步等待请求完成

(原创)linux下Microsoft/cpprestsdk支持https(server)

Microsoft Access 2010 Web 数据库将日期转换为字符串

web前端-Vue将日期,时间转换为字符串

将字符串转换为盲文

如果在 iOS 和 Android 上的 Web 应用程序中使用 FormData 发送文件,则转换为 [Object object] 字符串