从 Wt::Http::Request 获取 json& 请求

Get json from Wt::Http::Request& request

我对 json 请求有疑问:( 我有 class

class ForumCreate : public Wt::WResource 

和函数

virtual void handleRequest(const Wt::Http::Request& request, Wt::Http::Response& response)

request.contentType() 是 application/json。 如何从请求中获取 json?(

也许我应该用别的东西来获得 json? 任务:用户在静态 url 上发送带有 json 的 http 请求。我需要分析 json 文件并发送 json-response.

您将需要从

提供的输入流中解析数据
std::istream & Wt::Http::Request::in    (       )   const

https://www.webtoolkit.eu/wt/doc/reference/html/classWt_1_1Http_1_1Request.html#a768a65ceb3c0bf013b57c3de04b19041

它应该是原始 json 文本。

Wt 中有一个内置的 JSON 解析器。我是这样使用的:

Wt::Json::Object bodyContent;

try
{
    Wt::Json::parse(fromIstream(request.in()), bodyContent);
}
catch(std::exception e)
{
    ...
}

其中fromIstream如下:

std::string fromIstream(std::istream &stream)
{
    std::istreambuf_iterator<char> eos;
    return std::string(std::istreambuf_iterator<char>(stream), eos);
}

请记住,如果输入格式不正确,Wt::Json::parse() 将引发异常。希望对您有所帮助!