gpt4 book ai didi

cJSON打印函数不向对象添加数字

转载 作者:行者123 更新时间:2023-11-30 16:48:54 32 4
gpt4 key购买 nike

我开发了一个 C 嵌入式软件,该软件构建带有多个参数(字符串和整数)的 JSON 字符串。出于我的目的,我使用了 cJSON ),将来我需要解析复杂的 JSON)。

我用以下代码构建我的 json:

  jsonObject = cJSON_CreateObject();

cJSON_AddNumberToObject( jsonObject, "Version", 1 );

cJSON_AddStringToObject( jsonObject, "ID", "xyz" );

cJSON_AddStringToObject( jsonObject, "Local", "1234" );

cJSON_AddNumberToObject( jsonObject, "Type", 1 );

cJSON_AddStringToObject( jsonObject, "Message", "Hello" );

接下来,我使用以下方法将 JSON 打印到动态缓冲区中:

cJSON_PrintPreallocated( jsonObject, *jsonMessage, *jsonMessageLen, 0 )

当我在终端上可视化 jsonMessage 时,属性“Type”没有值。

这是构建的 json:

{"Version":1,"ID":"xyz","Local":"123","Type":,"Message":"Hello"}

我尝试使用不同的打印方法,例如我使用:

CJSON_PUBLIC(char *) cJSON_PrintBuffered(const cJSON *item, int prebuffer, cJSON_bool fmt)

并且 JSON 已正确构建。问题是我需要自己分配内存而不是使用cJSON_PrintBuffered。这是因为我无法使用 malloc 和 free 函数。

有什么建议吗?

谢谢

最佳答案

我更新了 cJSON 模块,现在它工作正常。

关于cJSON打印函数不向对象添加数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42812650/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com