C++使用JSON格式
时间: 2023-12-11 08:02:17 浏览: 109
C++实现json形式的Socket传输图片
在C++中,有许多第三方库可用于处理JSON格式的数据。以下是使用 RapidJSON 库进行JSON处理的示例代码:
```cpp
#include <iostream>
#include "rapidjson/document.h"
#include "rapidjson/writer.h"
#include "rapidjson/stringbuffer.h"
using namespace rapidjson;
int main() {
// 创建一个JSON对象
Document d;
d.SetObject();
// 添加键值对到JSON对象
Value name("John");
Value age(30);
d.AddMember("name", name, d.GetAllocator());
d.AddMember("age", age, d.GetAllocator());
// 将JSON对象转换为字符串
StringBuffer buffer;
Writer<StringBuffer> writer(buffer);
d.Accept(writer);
std::cout << buffer.GetString() << std::endl;
// 解析JSON字符串为JSON对象
const char* json = "{\"name\":\"Mary\",\"age\":25}";
Document doc;
doc.Parse(json);
// 从JSON对象获取键值对
const Value& nameValue = doc["name"];
const Value& ageValue = doc["age"];
// 打印键值对
std::cout << "Name: " << nameValue.GetString() << std::endl;
std::cout << "Age: " << ageValue.GetInt() << std::endl;
return 0;
}
```
在这个例子中,我们使用 RapidJSON 来创建和解析 JSON 对象。首先,我们创建了一个空的JSON对象 `d`,并向其中添加了键值对 `"name"` 和 `"age"`。然后,我们将JSON对象 `d` 转换为字符串,并将其打印出来。接下来,我们解析了一个JSON字符串,并从中获取了键值对 `"name"` 和 `"age"`,并打印它们的值。
注意:在使用 RapidJSON 库时,需要在代码中包含相应的头文件。在上面的例子中,我们包含了 `"rapidjson/document.h"`、`"rapidjson/writer.h"` 和 `"rapidjson/stringbuffer.h"`。
阅读全文