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;
}
相关推荐
Json_181790144801 小时前
An In-depth Look into the 1688 Product Details Data API Interface
大数据·json
哟哟耶耶2 小时前
js-将JavaScript对象或值转换为JSON字符串 JSON.stringify(this.SelectDataListCourse)
前端·javascript·json
努力的家伙是不讨厌的6 小时前
解析json导出csv或者直接入库
开发语言·python·json
Mephisto.java11 小时前
【大数据学习 | kafka高级部分】kafka的优化参数整理
大数据·sql·oracle·kafka·json·database
沐雪架构师12 小时前
mybatis连接PGSQL中对于json和jsonb的处理
json·mybatis
丁总学Java13 小时前
微信小程序,点击bindtap事件后,没有跳转到详情页,有可能是app.json中没有正确配置页面路径
微信小程序·小程序·json
Mephisto.java15 小时前
【大数据学习 | kafka高级部分】kafka的kraft集群
大数据·sql·oracle·kafka·json·hbase
Mephisto.java15 小时前
【大数据学习 | kafka高级部分】kafka的文件存储原理
大数据·sql·oracle·kafka·json
待磨的钝刨18 小时前
【格式化查看JSON文件】coco的json文件内容都在一行如何按照json格式查看
开发语言·javascript·json
小百菜1 天前
dom4j实现xml转map,xml转json字符串
xml·json·xml转map·xml转json