这里写目录标题
- Cjson
- C++ JSon
- QT json
Cjson
#include <stdio.h>
#include <stdlib.h>
#include "cjson.h"
// 向JSON对象中添加数据
cJSON_AddStringToObject(root, "name", "John");
cJSON_AddNumberToObject(root, "age", 30);
cJSON_AddStringToObject(root, "city", "New York");// 将JSON对象序列化为JSON字符串
char *jsonString = cJSON_Print(root);if (jsonString) {printf("JSON String: %s\n", jsonString);// 解析JSON字符串为JSON对象cJSON *parsedRoot = cJSON_Parse(jsonString);if (parsedRoot) {cJSON *name = cJSON_GetObjectItem(parsedRoot, "name");cJSON *age = cJSON_GetObjectItem(parsedRoot, "age");cJSON *city = cJSON_GetObjectItem(parsedRoot, "city");if (name && age && city) {printf("Parsed JSON Data:\n");printf("Name: %s\n", name->valuestring);printf("Age: %d\n", age->valueint);printf("City: %s\n", city->valuestring);}// 释放解析后的JSON对象cJSON_Delete(parsedRoot);} else {printf("JSON parsing failed.\n");}// 释放JSON字符串free(jsonString);
} else {printf("JSON serialization failed.\n");
}// 释放JSON对象
cJSON_Delete(root);return 0;
}
`
//嵌套对象使用
#include <stdio.h>
#include <stdlib.h>
#include <cJSON.h>int main() {// 创建根对象cJSON *root = cJSON_CreateObject();// 创建嵌套对象1cJSON *nestedObject1 = cJSON_CreateObject();cJSON_AddStringToObject(nestedObject1, "name", "John");cJSON_AddNumberToObject(nestedObject1, "age", 30);// 添加嵌套对象1到根对象cJSON_AddItemToObject(root, "person1", nestedObject1);// 创建嵌套对象2cJSON *nestedObject2 = cJSON_CreateObject();cJSON_AddStringToObject(nestedObject2, "name", "Alice");cJSON_AddNumberToObject(nestedObject2, "age", 25);// 添加嵌套对象2到根对象cJSON_AddItemToObject(root, "person2", nestedObject2);// 将根对象转换为 JSON 字符串char *jsonString = cJSON_Print(root);// 输出 JSON 字符串printf("%s\n", jsonString);// 释放内存cJSON_Delete(root);free(jsonString);return 0;
}
C++ JSon
#include <iostream>
#include "json.hpp"
#include <windows.h>
using namespace std;
namespace ns {// a simple struct to model a personstruct person {std::string name;std::string address;int age;};
}using json = nlohmann::json;
int main()
{//HWND hWnd = GetForegroundWindow(); // 获取当前窗口句柄//ShowWindow(hWnd, SW_HIDE); // 隐藏窗口ns::person p = { "Ned Flanders", "744 Evergreen Terrace", 60 };json j;j["name"] = p.name;j["address"] = p.address;j["age"] = p.age;cout << j << endl;while (1);return 0;
}//json.cpp链接
链接:https://pan.baidu.com/s/1Q0TJAA4ifZ7UKCm_tULLLw
提取码:c77q
--来自百度网盘超级会员V2的分享
可以参考以下两个链接
https://github.com/nlohmann/json
http://nlohmann.github.io/json/api/basic_json/
QT json
#include <QJsonDocument>
#include <QJsonObject>
#include <QJsonArray>
#include <QDebug>int main() {// 创建一个包含多个对象的 JSON 对象QJsonObject mainObject;// 创建子对象1QJsonObject person1;person1["name"] = "John";person1["age"] = 30;person1["city"] = "New York";// 创建子对象2QJsonObject person2;person2["name"] = "Alice";person2["age"] = 25;person2["city"] = "London";// 将子对象添加到主对象中mainObject["person1"] = person1;mainObject["person2"] = person2;// 创建 JSON 文档并将 JSON 对象添加到文档中QJsonDocument jsonDocument(mainObject);// 将 JSON 文档转换为字符串输出qDebug() << "JSON Data:\n" << jsonDocument.toJson();return 0;
}
#include <QJsonDocument>
#include <QJsonObject>
#include <QJsonArray>
#include <QDebug>int main() {// JSON 数据字符串QString jsonData = R"({"person1": {"name": "John","age": 30,"city": "New York"},"person2": {"name": "Alice","age": 25,"city": "London"}})";// 将 JSON 数据字符串转换为 JSON 文档QJsonDocument jsonDocument = QJsonDocument::fromJson(jsonData.toUtf8());// 获取 JSON 文档的根对象QJsonObject mainObject = jsonDocument.object();// 从根对象中获取子对象QJsonObject person1 = mainObject["person1"].toObject();QJsonObject person2 = mainObject["person2"].toObject();// 从子对象中获取值QString name1 = person1["name"].toString();int age1 = person1["age"].toInt();QString city1 = person1["city"].toString();QString name2 = person2["name"].toString();int age2 = person2["age"].toInt();QString city2 = person2["city"].toString();// 输出解析得到的值qDebug() << "Person 1: " << name1 << ", " << age1 << ", " << city1;qDebug() << "Person 2: " << name2 << ", " << age2 << ", " << city2;return 0;
}