5

我以前只在 Visual Studio 开发环境中使用过 C++。现在我被要求使用 JSON 接收和发送数据。

我已经搜索了互联网,但找不到任何 C++ 在 Visual Studio 中使用的 JSON 示例。如果有人在 Visual Studio 2010 中使用 C++ 中的 JSON,请传递链接。

4

5 回答 5

3

如果你要安装 boost::spirit,你可以使用这个 lib JSON Spirit。与 VS 一起工作就像一个魅力。

UPDATE包含json精神目录并使用

#include <json_spirit/json_spirit.h>
#include <json_spirit/json_spirit_reader_template.h>
#include <json_spirit/json_spirit_writer_template.h>
于 2012-10-10T13:34:22.630 回答
1

JsonCpp是一个 C++ JSON 解析器,根据他们的README构建在 VS 中。

于 2012-10-10T13:08:47.327 回答
1

Apache Thrift支持 JSON。这是一个不错的选择,因为除了 JSON 之外,您还可以获得传输机制(TCP 套接字等),并且可以选择在多线程环境中。

在这里您可以找到有关适用于 Windows 的 JSON 的信息。

Thrift 是多平台的,所以它应该可以很好地与 VS 配合使用。

于 2012-10-10T17:26:06.657 回答
0

你可以试试rapidjson

它体积小、速度快、原生支持 VC2008/2010,具有最小的依赖性(例如,没有 BOOST,甚至没有 STL)。

它可以使用 SAX 或 DOM 样式 API 解析和生成 JSON。

于 2012-11-14T08:39:49.387 回答
0

Json11 - 是一个用于 C++11 的小型 JSON 库,提供 JSON 解析和序列化。

该库提供的核心对象是 json11::Json。Json 对象表示任何 JSON 值:null、bool、数字(int 或 double)、字符串(std::string)、数组(std::vector)或对象(std::map)。

Json 对象的行为类似于值。它们可以被分配、复制、移动、比较相等或顺序,等等。还有辅助方法 Json::dump,将 Json 序列化为字符串,以及 Json::parse(静态)将 std::string 解析为 Json 对象。

例子:

        const string simple_test =
            R"({"k1":"v1", "k2":42, "k3":["a",123,true,false,null]})";
        string err;
        auto json = Json::parse(simple_test, err);
        std::cout << "k1: " << json["k1"].string_value() << "\n";

PicoJSON - 是一个用于 C++ 的小型 JSON 解析器/序列化器,具有以下属性:

  • 仅头文件
  • 没有外部依赖(仅使用标准 C++ 库)
  • STL 友好(数组使用 std::vector 表示,对象是 std::map)
  • 提供拉取接口和流(基于事件)接口

例子:

        std::string json1 = R"({ "k1":"v1", "k2" : 42, "k3" : ["a",123,true,false,null] })";
        picojson::value v;
        std::string err1 = picojson::parse(v, json1);
        const picojson::object& o = v.get<picojson::object>();
        for (picojson::object::const_iterator i = o.begin(); i != o.end(); ++i) {
            std::cout << i->first << "  " << i->second << std::endl;
        }

两者都可以在带有标准库的 Visual Studio 中轻松使用(没有任何额外的依赖项)。

于 2017-01-18T12:37:26.087 回答