问题标签 [cjson]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
186 浏览

c++ - 如何在 Mac 中向 CLion 添加开源库?

我想在我的 c++ 代码中使用 ( cJSON ) 库。如何下载此库并将其添加到我的 CLion 项目中,以便像这样将其导入我的代码中

#include <cJSON.h>

这是我的 cMakeLists.txt

0 投票
0 回答
27 浏览

c - Function return via pointer doesn't work correctly

I am not so experienced in programming in C and I occurred a problem.

I'm trying to pass cJSON* body_json to a function int _parseJSON(const char* const body, cJSON* body_json) via pointer. In this function, I want to change body_json and return it via this pointer, but the returned value is incorrect (I have errors in the next function that's using this body_json).

Code:

0 投票
2 回答
1254 浏览

c - 使用 C 和 ESP-IDF 框架通过 MQTT 将 JSON 对象从 ESP32 发布到 AWS IoT

我有一个结构 IoT_Publish_Message_Params 需要准备以准备在 AWS IoT 上发布。当我将字符串作为有效负载传递时,下面的代码片段完全可以正常工作。

现在我想发送一个实际的 JSON 有效负载,但我不确定我该怎么做。我尝试使用 cJSON 创建 JSON 对象:

但是,我的问题是,我在这里传递什么作为 IoT_Publish_Message_Params.payloadLen ?以及如何将 json 对象传递给 IoT_Publish_Message_Params.payload?

0 投票
0 回答
80 浏览

c - MSVC 和 linux 中的 malloc 函数在 cJSON 中不同

在我研究 cJSON 源代码时,我不明白他们为什么使用不同malloc的函数,而不是使用包装器。

0 投票
2 回答
592 浏览

c - 查询参数保存为 json

我正在尝试以 JSON 格式存储 API 请求查询参数,以保留推断的参数值的原始类型。我在事先不知道这些 API 长什么样的情况下这样做。下面的代码一个一个地处理每个查询参数(由 & 分隔)。

使用上面的代码,用于输入

我得到这些打印:

根据本文档和我研究过的其他地方, https://swagger.io/docs/specification/serialization/

关于如何传递查询参数没有达成共识,因此不能保证我会在这里遇到什么。所以我的目标是支持尽可能多的变化。这些可能性似乎是最常见的:

数组:

细绳:

对象,可以嵌套:

任何想法如何最好地解决这个问题?基本上对于这些查询参数,我想聚合('exploded')属于一起的参数并保存以查询正确的预期 json 对象。有问题的线路:

0 投票
1 回答
41 浏览

cjson - 有没有办法在 cJSON 中创建没有键的数组

1.我需要打印 json 格式,例如 { "numport":1 [ { "Port":1 "value":234 },{ "Port":2 "value":2344 } ]

0 投票
1 回答
40 浏览

c - 我们如何将返回值作为输入传递给 c 中的同一函数

  1. 在这个函数中 outdata 存储一个输出然后它作为输入传递给这个函数然后更新输出数据再次传递然后像这种方式更新。
  2. 再次作为输入传递,然后更新输出数据。
0 投票
1 回答
62 浏览

c - 在 Struct 中打印分配的 cJSON cString 触发器 EXC_BAD_ACCESS (Segmentation Fault) C lang

我无法修复此错误:

返回向量结构并打印它(main.c)后,我得到一个段错误。EXC_BAD_ACCESS 通常意味着指向的内存地址没有分配。

但我从未释放解析过的 JSON (cJSON_Delete(cJSON *input_json))。此外,当我从 get_album_items 函数打印所有内容时,它可以工作。

当我尝试在 get_album_items 函数之外访问分配的 cstring 时,我得到数组中的第一个项目,然后是垃圾。

这是 LLDB 跟踪:

解析 JSON 字符串

向量结构:

Get_Album_Items:

主程序

谢谢您的帮助!

0 投票
1 回答
244 浏览

c++ - 计算一个 cJSON 对象的字节大小

现在我正在努力计算cJSON对象的大小。到目前为止,我已经这样做了:

显然,我初始化了有效负载对象并打印到终端以验证数据的完整性,一切正常。但是,在打印sizeof结果后,字节数始终为 4,但对于长字符串(如我的),它应该在 500 字节左右。

我在这里缺少处理cJSON对象的东西吗?

希望您能提供帮助,或者给我一个示例,说明如何获得整个尺寸的正确值。

0 投票
1 回答
235 浏览

memory - 释放 cJSON 对象时的 cJSON 内存泄漏

我在使用 cJSON 库时遇到问题。我假设在一定时间(40 分钟到 1 小时)后存在内存泄漏导致代码中断。

我在下面复制了我的代码:

我阅读了一些关于释放内存的其他线程并尝试做同样的事情。谁能告诉我这是否是释放分配给 cJSON 对象的空间的正确方法。

问候,阿德尔。