我正在从http::response<http::dynamic_body>::body()
方法获取boost::beast::multibuffer
对象。然后,我想像这样解析json内容:
boost::property_tree::read_json(requestBodyStream, propertyTree);
我应该使用boost::beast::buffers_to_string
和std::stringstream
来获取requestBodyStream
,还是可以不花费那么多内存复制缓冲区的内容?
1条答案
按热度按时间gj3fmq9x1#
一般来说,不要为 * 特定实现 * 编程,而要为 * 概念 * 编程。这里,
dynamic_body
documents:这个主体使用
DynamicBuffer
作为基于内存的容器来保存消息有效载荷。使用此主体类型的消息可以被序列化和解析。你不需要这个概念,因为你会完全在内存中使用它,但如果你这样做,你会像这样做:
看到它**Live On Coliru**
它从stdin读取一个示例响应,让我们使用
就像这样:
指纹
然而
现在我们已经回答了这个问题,让我们添加上下文:
相反,使用最简单的模型并使用JSON库,比如Boost.JSON:
它代码更少,效率更高,最重要的是,正确处理JSON!