我以前只在 Visual Studio 开发环境中使用过 C++。现在我被要求使用 JSON 接收和发送数据。
我已经搜索了互联网,但找不到任何 C++ 在 Visual Studio 中使用的 JSON 示例。如果有人在 Visual Studio 2010 中使用 C++ 中的 JSON,请传递链接。
我以前只在 Visual Studio 开发环境中使用过 C++。现在我被要求使用 JSON 接收和发送数据。
我已经搜索了互联网,但找不到任何 C++ 在 Visual Studio 中使用的 JSON 示例。如果有人在 Visual Studio 2010 中使用 C++ 中的 JSON,请传递链接。
如果你要安装 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>
Apache Thrift支持 JSON。这是一个不错的选择,因为除了 JSON 之外,您还可以获得传输机制(TCP 套接字等),并且可以选择在多线程环境中。
在这里您可以找到有关适用于 Windows 的 JSON 的信息。
Thrift 是多平台的,所以它应该可以很好地与 VS 配合使用。
你可以试试rapidjson。
它体积小、速度快、原生支持 VC2008/2010,具有最小的依赖性(例如,没有 BOOST,甚至没有 STL)。
它可以使用 SAX 或 DOM 样式 API 解析和生成 JSON。
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 解析器/序列化器,具有以下属性:
例子:
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 中轻松使用(没有任何额外的依赖项)。