Json示例

这里写目录标题

  • Cjson
  • [C++ JSon](#C++ JSon)
  • [QT 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;

}

`

cpp 复制代码
//嵌套对象使用
#include <stdio.h>
#include <stdlib.h>
#include <cJSON.h>

int main() {
    // 创建根对象
    cJSON *root = cJSON_CreateObject();

    // 创建嵌套对象1
    cJSON *nestedObject1 = cJSON_CreateObject();
    cJSON_AddStringToObject(nestedObject1, "name", "John");
    cJSON_AddNumberToObject(nestedObject1, "age", 30);

    // 添加嵌套对象1到根对象
    cJSON_AddItemToObject(root, "person1", nestedObject1);

    // 创建嵌套对象2
    cJSON *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

cpp 复制代码
#include <iostream>
#include "json.hpp"
#include <windows.h>
using namespace std;
namespace ns {
	// a simple struct to model a person
	struct 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

cpp 复制代码
#include <QJsonDocument>
#include <QJsonObject>
#include <QJsonArray>
#include <QDebug>

int main() {
    // 创建一个包含多个对象的 JSON 对象
    QJsonObject mainObject;

    // 创建子对象1
    QJsonObject person1;
    person1["name"] = "John";
    person1["age"] = 30;
    person1["city"] = "New York";

    // 创建子对象2
    QJsonObject 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;
}
cpp 复制代码
#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;
}
相关推荐
Ajie'Blog10 小时前
MCP Server 接入 Claude Code 老是失败?从 stdio、路径和 JSON-RPC 开始排查
javascript·rpc·json
terry6001 天前
从流畅交互到高可用:企讯通Qcaptcha滑动拼图的毫秒级响应与容灾设计
web安全·json·asp.net·信息与通信·数据库架构
terry6001 天前
2026企业级携号转网查询标准:论实时数据同步与高并发承载设计
java·大数据·人工智能·json·信息与通信·数据库架构
㱘郳2 天前
VS Code 的setting.json的预配置
json
一拳小和尚LXY2 天前
我开发了一款免费 Chrome 插件 TabScribe:一键复制所有标签页为 Markdown/JSON,完全离线零追踪
前端·chrome·json
nap-joker2 天前
使用n8n+飞书搭建自动推送新闻机器人
javascript·json·飞书·工作流·n8n·36氪新闻向客户端推送
一只积极向上的小咸鱼2 天前
TOML、JSON、YAML、INI 配置文件格式总结
java·服务器·json
San813_LDD2 天前
[后端开发]GET/POST_带参/不带参
前端·后端·计算机网络·json
winfredzhang2 天前
Python 实战:用 wxPython 写一个 MD5 文件查重清理工具
python·sqlite·json·wxpython·md5·预览·查重
木雷坞3 天前
6月 Docker 国内镜像源配置:daemon.json、/v2/ 连通性和 pull 验证
docker·eureka·json