【发布时间】:2022-01-17 03:22:39
【问题描述】:
这是我的 JSON:
string js = R"({"table":"orderBookL2_25","action":"insert","data":[{"symbol":"XBTUSD","id":8796514950,"side":"Buy","size":10000,"price":34850.5},{"symbol":"XBTUSD","id":8796515700,"side":"Buy","size":281,"price":34843}]})";
我想以某种方式将其转换为可以帮助我方便地访问值的对象。例如,类似的东西;
parsed_data["data"][0]["symbol"]
我曾尝试使用 JSON::Boost 但我不知道如何使用此库进行解析。我试过这段代码:
json::value parsed_data{js}; cout << parsed_data.at(0);
但它的输出毫无价值:
"{\"table\":\"orderBookL2_25\",\"action\":\"insert\",\"data\":[{\"symbol\":\"XBTUSD\",\"id\":8796514950,\"side\":\"Buy\",\"size\":10000,\"price\":34850.5},{\"symbol\":\"XBTUSD\",\"id\":8796515700,\"side\":\"Buy\",\"size\":281,\"price\":34843}]}"
【问题讨论】:
-
尝试使用
boost::property_tree::read_json(....)这可能会有所帮助:stackoverflow.com/a/15207050/2900932 -
@By-Jokese property_tree 对 JSON 很烂。类型信息丢失。