打印
[STM32F1]

cJSON能用在STM32工程里吗

[复制链接]
楼主: Tom952331
手机看帖
扫描二维码
随时随地手机跟帖
61
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;
}

使用特权

评论回复
62
LLGTR| | 2025-2-14 23:33 | 只看该作者
或者基于库文件来确认,

使用特权

评论回复
63
AutoMotor| | 2025-2-16 08:56 | 只看该作者
解析json,data时,检查返回值,确保解析成功。

使用特权

评论回复
64
lllook| | 2025-2-17 08:03 | 只看该作者
可以在stm32项目中成功使用cjson库解析并生成json数据。

使用特权

评论回复
65
LinkMe| | 2025-2-17 21:57 | 只看该作者
您需要下载子库文件(c和h)并将其添加到项目中,

使用特权

评论回复
66
nowboy| | 2025-2-17 22:33 | 只看该作者
是的,cJSON可以在STM32工程中使用。cJSON是一个轻量级、易于使用的C语言库,用于处理JSON数据,适用于嵌入式系统如STM32。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则