json格式 C++
时间: 2023-09-02 17:11:16 浏览: 102
在C++中,可以使用第三方库来解析和生成JSON格式的数据。以下是一个使用开源库RapidJSON的示例:
```cpp
#include <iostream>
#include "rapidjson/document.h"
#include "rapidjson/writer.h"
#include "rapidjson/stringbuffer.h"
int main() {
// 创建一个JSON对象
rapidjson::Document document;
document.SetObject();
// 添加键值对
rapidjson::Value name;
name.SetString("John");
document.AddMember("name", name, document.GetAllocator());
rapidjson::Value age;
age.SetInt(25);
document.AddMember("age", age, document.GetAllocator());
rapidjson::Value isStudent;
isStudent.SetBool(true);
document.AddMember("isStudent", isStudent, document.GetAllocator());
rapidjson::Value hobbies(rapidjson::kArrayType);
rapidjson::Value reading;
reading.SetString("reading");
hobbies.PushBack(reading, document.GetAllocator());
rapidjson::Value sports;
sports.SetString("sports");
hobbies.PushBack(sports, document.GetAllocator());
rapidjson::Value music;
music.SetString("music");
hobbies.PushBack(music, document.GetAllocator());
document.AddMember("hobbies", hobbies, document.GetAllocator());
rapidjson::Value address(rapidjson::kObjectType);
rapidjson::Value street;
street.SetString("123 Main St");
address.AddMember("street", street, document.GetAllocator());
rapidjson::Value city;
city.SetString("New York");
address.AddMember("city", city, document.GetAllocator());
rapidjson::Value country;
country.SetString("USA");
address.AddMember("country", country, document.GetAllocator());
document.AddMember("address", address, document.GetAllocator());
// 将JSON转换为字符串
rapidjson::StringBuffer buffer;
rapidjson::Writer<rapidjson::StringBuffer> writer(buffer);
document.Accept(writer);
std::cout << buffer.GetString() << std::endl;
return 0;
}
```
在上面的示例中,我们使用RapidJSON库来创建一个JSON对象,并添加键值对。然后,我们使用Writer将JSON对象转换为字符串并输出。
请注意,这只是一个简单的示例,RapidJSON提供了更多的功能和选项,如解析现有的JSON字符串等。你可以根据自己的需求使用不同的JSON库来处理JSON格式的数据。
阅读全文