有人在Visual Studio 2010中使用C++中的JSON吗
Has anyone worked with JSON in C++ in Visual Studio 2010
我以前只在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>
Apache Thrift支持JSON。这是一个很好的替代方案,因为除了JSON之外,您还可以获得传输机制(TCP套接字等),并且可以选择在多线程环境中使用。
在这里,您可以找到有关窗口JSON的信息。
Thrift是多平台的,所以它应该能很好地与VS配合使用。
您可以尝试rapidjson。
它体积小、速度快、本机支持VC2008/2010,具有最小的依赖性(例如,没有BOOST,甚至没有STL)。
它可以使用SAX或DOM风格的API解析和生成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中轻松使用(没有任何其他依赖项)。
- 将成员变量添加到共享库中的类中,不会破坏二进制兼容性吗
- .cpp和.h文件中的模板专用化声明
- 反向给定链表中的K节点
- 正在查找文档以获得PS4平台的C++中的设备信息
- enum是C++中的宏变量还是整数变量
- 使用C++库在Android项目中修改gradle中的cmake参数,用于插入指令的测试
- 将字符串存储在c++中的稳定内存中
- 文本文件中的单词链表
- 递归函数计算序列中的平方和(并输出过程)
- 如何从C++中的依赖类型中获得它所依赖的类型
- C++中的"inline"关键字
- 如何运行位于boost/libs/python/example/tutorial目录中的hello.cpp和Jamfil
- 如何使用 < 和 > 命令获取 c++ 中的输入和输出?
- 用C++中的一个变量定义一个常量
- vector.resize()中的分配错误
- 使用指针从C++中的数组中获取最大值
- arr[-1]在c++中的奇怪行为
- 具有奇怪重复模板模式的派生类中的成员变量已损坏
- 将值指定给向量(2D)的向量中的某个位置
- 内置函数可查看CPP中的成员变量