[STM32F1] cJSON能用在STM32工程里吗

[复制链接]
7651|65
linfelix 发表于 2025-2-14 21:36 | 显示全部楼层
#include "cJSON.h"
#include <stdio.h>

// 生成 JSON 数据
void create_json() {
    // 创建一个 JSON 对象
    cJSON *root = cJSON_CreateObject();
    // 添加一个字符串类型的键值对
    cJSON_AddStringToObject(root, "name", "John");
    // 添加一个整数类型的键值对
    cJSON_AddNumberToObject(root, "age", 30);

    // 将 JSON 对象转换为字符串
    char *json_string = cJSON_Print(root);
    if (json_string != NULL) {
        printf("Generated JSON: %s\n", json_string);
        // 释放字符串内存
        cJSON_free(json_string);
    }

    // 释放 JSON 对象内存
    cJSON_Delete(root);
}

// 解析 JSON 数据
void parse_json(const char *json_string) {
    // 解析 JSON 字符串
    cJSON *root = cJSON_Parse(json_string);
    if (root != NULL) {
        // 获取 "name" 键对应的值
        cJSON *name = cJSON_GetObjectItem(root, "name");
        if (cJSON_IsString(name)) {
            printf("Name: %s\n", name->valuestring);
        }

        // 获取 "age" 键对应的值
        cJSON *age = cJSON_GetObjectItem(root, "age");
        if (cJSON_IsNumber(age)) {
            printf("Age: %d\n", age->valueint);
        }

        // 释放 JSON 对象内存
        cJSON_Delete(root);
    }
}

int main() {
    // 生成 JSON 数据
    create_json();

    // 定义一个 JSON 字符串
    const char *json_str = "{\"name\": \"Alice\", \"age\": 25}";
    // 解析 JSON 数据
    parse_json(json_str);

    return 0;
}
LLGTR 发表于 2025-2-14 23:33 | 显示全部楼层
或者基于库文件来确认,
AutoMotor 发表于 2025-2-16 08:56 | 显示全部楼层
解析json,data时,检查返回值,确保解析成功。
lllook 发表于 2025-2-17 08:03 | 显示全部楼层
可以在stm32项目中成功使用cjson库解析并生成json数据。
LinkMe 发表于 2025-2-17 21:57 | 显示全部楼层
您需要下载子库文件(c和h)并将其添加到项目中,
nowboy 发表于 2025-2-17 22:33 | 显示全部楼层
是的,cJSON可以在STM32工程中使用。cJSON是一个轻量级、易于使用的C语言库,用于处理JSON数据,适用于嵌入式系统如STM32。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 在线客服 返回列表 返回顶部