有人在Visual Studio 2010中使用C++中的JSON吗

Has anyone worked with JSON in C++ in Visual Studio 2010

本文关键字:C++ 中的 JSON Visual Studio 2010      更新时间:2023-10-16

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

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

如果您要安装boost::spirit,您可以使用这个libJSONSpirit。像符咒一样与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>
JsonCpp是一个C++JSON解析器,它根据它们的自述文件在VS中构建。

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

在这里,您可以找到有关窗口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:(static)用于将std::字符串解析为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中轻松使用(没有任何其他依赖项)。