利用boost 自带的json库,解析数组,json格式如下:
- {
- "roomId":"room_123",
- "pubUid":"uid1",
- "subList":[
- "uid2",
- "uid3",
- "uid4"
- ]
- }
解析代码:
- #include <boost/asio.hpp>
- #include <boost/shared_ptr.hpp>
- #include <boost/thread.hpp>
- #include <boost/thread/mutex.hpp>
- #include <boost/bind.hpp>
- #include <iostream>
- #include <map>
- #include <vector>
- #include <boost/property_tree/ptree.hpp>
- #include <boost/property_tree/json_parser.hpp>
- int main(int argc, char *argv[])
- {
-
- string json_info = json数据;
- boost::property_tree::ptree parse_root;
- boost::property_tree::ptree positions_array;
- std::stringstream strStream(json_info);
- boost::property_tree::read_json(strStream, parse_root);
- string room_id, pubUid;
- vector<string> vec_subId;
- try
- {
- room_id = parse_root.get<string>("roomId");
- pubUid = parse_root.get<string>("pubUid");
- positions_array = parse_root.get_child("subList");
- boost::property_tree::ptree::iterator pos = positions_array.begin();
- for (; pos != positions_array.end(); ++pos)
- {
- boost::property_tree::ptree item = pos->second;
- string uid = item.get<string>("");
- vec_subId.push_back(uid);
- }
- }
- catch (boost::property_tree::ptree_error const &e)
- {
- return 0;
- }
- }