首页 > 编程语言 >C++读取调用接口返回的json数据

C++读取调用接口返回的json数据

时间:2023-08-31 09:45:10浏览次数:36  
标签:std 读取 C++ json io data string

1、引入头文件

#include <boost/property_tree/ptree.hpp>
#include <boost/property_tree/json_parser.hpp>
View Code

2、读取json数据方法,http请求中的chunked传输数据会返回数据的长度,在最后一个chunked中其头部长度定为0

//读取json文件{"name":"zhangsan","age":25}
template<class T>
void readJson(const string& data, T& t) {
    if (strcmp(data.c_str(), "") != 0) {
        std::size_t start = data.find_first_of("{");
        std::size_t end = data.find_last_of("}");
        string res = data.substr(start, end - start + 1);
        std::stringstream ss(res);
        boost::property_tree::ptree pt;
        boost::property_tree::json_parser::read_json(ss, pt);
        t = pt.get<T>("name");
        std::cout << "result:" << t << std::endl;
    }
}
View Code
void postCustom(const string& url, const string& token) {
    boost::asio::io_service io;
    HttpBoost c(io);
    c.post(url, token);
    io.run();
    string p=0;
    readJson(c.getResponse(),p);
    std::cout << c.getResponse() << std::endl;
}
View Code

 参考 https://www.jianshu.com/p/acb76b784230

标签:std,读取,C++,json,io,data,string
From: https://www.cnblogs.com/ZJ199012/p/17668767.html

相关文章

  • 标准C++ -- day08
    一、类型信息运算符typeid在C++中typeid可以获取数据的类型,需要加头文件typeinfo通过find/usr/include-nametypeinfotypeid是运算符,执行运算符函数,执行的返回值类型是type_info类类对象type_info中有个name的成员函数type_info中还重载了==运算符,可以......
  • C++继承
    一、什么是继承当遇到问题时,先查看现有的类是否能解决一部分问题,如果有则继承该类,并在此基础上扩展以此解决问题,从而缩短解决问题的时间(代码复用)当遇到一个大而复杂的问题时,可以把大问题拆分成若干个不同的小问题,然后为每个小问题设计一个类来解决,最后通过继承的方式把这......
  • C++ 数组排序 查找。数值排序、冒泡排序以及顺序查找的方法
    #include<iostream>#include<cstring>#include<algorithm>#include<ctime>#defineMAX8usingnamespacestd; intmain() {   inta[MAX]={1,5,9,6,3,1,4,6};  for(inti=0;i<MAX;i++)   cout<<a[i]<<"";    ......
  • c++数组基本用法
    在C++中,数组是一种最基本的数据结构,用于存储一组相同类型的元素。以下是有关C++数组的一些重要信息:1.**声明和初始化数组:**```cpp//声明一个整数数组,指定大小为5intmyArray[5];//初始化数组的同时赋值intanotherArray[3]={10,20,30};```2.**访问数组元素:**数组中的元......
  • js 遍历json格式数据到table中
    前端aspx文件,js把数据显示在表格中1.首先我们在前端页面写一个table代码。1<tableborder="1"id="gystable"cellpadding="0"cellspacing="0"class="frame5">2......
  • 深信服应用交付报表系统download.php任意文件读取漏洞
    漏洞描述深信服应用交付报表系统download.php文件存在任意文件读取漏洞,攻击者通过漏洞可以下载服务器任意文件。漏洞影响深信服应用交付报表系统漏洞复现fofa搜索环境复现:app="SANGFOR-应用交付报表系统"登录页面:payload:/report/download.php?pdf=../../../../../etc/pa......
  • C++基础
    1变量和常量C++规定在创建一个变量或者常量时,必须要制定出相应的数据类型,否则无法给变量分配内存常量不可修改,一旦修改便会报错(通常在变量定义前加关键字const)宏常量不需要制定数据类型,因为其不占内存不同数据类型占用空间不同,取值范围也不同。一旦定义的变量或常量......
  • leetcode & c++多线程刷题日志
    1.按序打印按序打印解法互斥锁classFoo{mutexmtx1,mtx2;public:Foo(){mtx1.lock(),mtx2.lock();}voidfirst(function<void()>printFirst){printFirst();mtx1.unlock();}voidsecond(function<voi......
  • jsonpath用法记录
    {"flag":1,"code":0,"msg":"成功","detail":[{"name":"重疾险","value":"1","children":[......
  • UE如何制作C++函数事件蓝图
    一.蓝图类中的函数在新建的actor中的C++ .h文件中,声明UFUNCTION(BlueprintCallable,Category="XXXX"),然后在.cpp中写函数的内容即可。编译后用蓝图继承C++类,可以进行函数的调用了二.建立函数库任意蓝图可以调用建立BlueprintFunctionLibrary的C++类,参考一中进行函数......