Json示例

news/2025/2/16 7:02:55/

这里写目录标题

  • 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;
}

http://www.ppmy.cn/news/1251180.html

相关文章

907. 子数组的最小值之和 --力扣 --JAVA

题目 给定一个整数数组 arr&#xff0c;找到 min(b) 的总和&#xff0c;其中 b 的范围为 arr 的每个&#xff08;连续&#xff09;子数组。 由于答案可能很大&#xff0c;因此 返回答案模 10^9 7 。 解题思路 找到以当前值为最小值所能组成的子数组&#xff1b;若存在两个相同…

Ubuntu系统执行“docker ps“出现“permission denied“

当我们安装好Ubuntu时&#xff0c;使用鱼香ros一键安装指令 wget http://fishros.com/install -O fishros && . fishros 一键安装Docker后&#xff0c;执行"docker ps"出现"permission denied" seelina:~$ docker ps permission denied while …

2023-11-30 LeetCode每日一题(确定两个字符串是否接近)

2023-11-30每日一题 一、题目编号 1657. 确定两个字符串是否接近二、题目链接 点击跳转到题目位置 三、题目描述 如果可以使用以下操作从一个字符串得到另一个字符串&#xff0c;则认为两个字符串 接近 &#xff1a; 操作 1&#xff1a;交换任意两个 现有 字符。 例如&…

记i18n ally工具检测语言失败的一则思路

情况 只有某个文件检测不到汉字&#xff0c;其余都可以检测出来&#xff0c;困扰许久&#xff0c;发个博客记一下思路 解决方法&#xff1a; 1、肯定不是i18n ally工具的问题&#xff0c;因为其他的vue都能检测成功 2、是这个文件的问题 采用排除法 先删掉所有代码&#…

[NOIP2016 普及组] 回文日期

枚举好题&#xff0c;直接枚举答案 看看在不在范围内就行了 注意二月份 92200229是合法的~ 82200228也是合法的&#xff01; #include<bits/stdc.h> using namespace std;map<int,int>mp;int main() {mp[1] mp[3] mp[5] mp[7] mp[8] mp[10] mp[12] 31;mp[…

c语言总结(解题方法)

项目前期处理&#xff1a; 1.首先需要确定项目的背景知识&#xff0c;即主要的难点知识&#xff0c;如指针&#xff0c;数组&#xff0c;结构体&#xff0c;以检索自己是否对项目所需的背景知识足够了解。 2.确定问题实现方法&#xff0c;即题目本身的实现方法&#xff0c;在c语…

Flask SocketIO 实现动态绘图

Flask-SocketIO 是基于 Flask 的一个扩展&#xff0c;用于简化在 Flask 应用中集成 WebSocket 功能。WebSocket 是一种在客户端和服务器之间实现实时双向通信的协议&#xff0c;常用于实现实时性要求较高的应用&#xff0c;如聊天应用、实时通知等&#xff0c;使得开发者可以更…

【MATLAB】异常数据识别

基于分位数的异常点识别 首先&#xff0c;给定了一个原始数据序列x。然后&#xff0c;计算了序列x的上四分位数和下四分位数&#xff0c;并根据这两个值计算了异常点的阈值。上四分位数减去1.5倍的四分位数范围得到异常值下界&#xff0c;下四分位数加上1.5倍的四分位数范围得…