1

我是 C++ REST('Casablanca')的新手。我在这里阅读了教程。之后,我从那里获取了一个示例代码并尝试在我的机器上运行它。

下面是代码

std::map<utility::string_t, utility::string_t> dictionary;

void handle_get(http_request request)
{
    TRACE(L"\nhandle GET\n");

    web::json::value::field_map answer;

    for (auto const & p : dictionary)
    {
        answer.push_back(std::make_pair(json::value(p.first), json::value(p.second)));
    }

    request.reply(status_codes::OK, json::value::object(answer));
}

int main()
{
    http_listener listener(L"http://127.0.0.1:8080/stockData");

    listener.support(methods::GET, handle_get);

    return 0;
}

在这段代码中,我收到如下错误

在此处输入图像描述

我检查了头文件json.h,找不到名为的成员(类/结构)field_map 请帮助

4

1 回答 1

6

我认为下面的代码可以替换您的代码并且应该编译最新的稳定版本 cpprestsdk v2.8.0

std::map<utility::string_t, utility::string_t> dictionary;

void handle_get(http_request request)
{
    TRACE(L"\nhandle GET\n");

    json::value obj;
    for ( auto const & p : dictionary )
    {
        obj[p.first] = json::value::string(p.second);
    }

    // this is just for debugging
    utility::stringstream_t stream;
    obj.serialize(stream);
    std::wcout << stream.str();

    request.reply( status_codes::OK, obj);
}
于 2016-08-08T12:46:18.483 回答