C++ RapidJSON 解析包装在回调函数中的 JSON 对象
C++ RapidJSON parse a JSON object wrapped in a callback function
我正在尝试使用C++中的RapidJSON库解析来自雅虎API的JSON响应,并且此响应包装在回调方法中。这是我得到的回应
YAHOO.util.ScriptNodeDataSource.callbacks({"ResultSet":{"Query":"AMZN","Result":[{"symbol":"AMZN","name":"Amazon.com, Inc.","exch":"NMS","type":"S","exchDisp":"NASDAQ","typeDisp":"Equity"},{"symbol":"AMZN.MX","name":"Amazon.com, Inc.","exch":"MEX","type":"S","exchDisp":"Mexico","typeDisp":"Equity"}]}});
如果我像这样将此 JSON 响应直接提供给 RapidJSON,它将无法解析它。
rapidjson::Document json_doc;
if (json_doc.Parse(fetched_data.c_str()).HasParseError()) {
continue;
}
那么,除了完全删除此子字符串的明显方法之外,使用此回调函数部分解析 JSON 的方法是什么YAHOO.util.ScriptNodeDataSource.callbacks
。
你可以假 Null );
部分,并在回调部分之后给出一个指针:
size_t pos = std::string("YAHOO.util.ScriptNodeDataSource.callbacks(").size();
std::string stringifiedJSON = "YAHOO.util.ScriptNodeDataSource.callbacks({"ResultSet": /*...*/ });"
str[str.size() - 2] = 0; // null terminate exactly on ");"
const char* ptr = stringifiedJSON.data();
ptr += pos;
json::Document doc;
doc.parse(ptr);
str[str.size() - 2] = ')'; //revert the string back;
相关文章:
- "error: no matching function for call to"构造函数错误
- 什么时候调用组成单元对象的析构函数
- 继承函数的重载解析
- 为什么随机数生成器不在void函数中随机化数字,而在main函数中随机化
- C++模板来检查友元函数的存在
- 递归函数计算序列中的平方和(并输出过程)
- 对RValue对象调用的LValue ref限定成员函数
- C++17复制构造函数,在std::unordereded_map上进行深度复制
- 将数组作为参数传递给函数安全吗?作为第三方职能部门,可以探索他们想要的之外的其他元素
- 在C++STL中是否有Polyval(Matlab函数)等价物?
- 为什么使用 "this" 指针调用派生成员函数?
- 将对象数组的引用传递给函数
- std::string 可以作为 nlohmann::json 传递给显式构造函数
- c++:运行一个函数 8 次,并将每个答案添加到数组或 JSON 中
- C++-JSON::值用作函数参数中的重新引用
- C 返回函数的函数返回JSON数组通过Nlohmann Json.hpp
- C 在较旧的JSON :: NLOHMANN库中使用push_back时无匹配函数
- C++ RapidJSON 解析包装在回调函数中的 JSON 对象
- Boost Library函数将JSON格式的属性树转换为点分隔的字符串
- 比较从函数返回的两个std::string常量(两个json精神get_str())1-liner