问题标签 [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 回答
2677 浏览

nginx - 使用 cjson 在 lua 中获取 json 值

我有一个在 lua 中使用 json 为 nginx 编码的 json 字符串。我已经使用 cjson 进行编码,我需要获取 json 键的值。

如何在lua中获取key4的值。

所以我有以下

如何从 encodejson 变量中提取 value4。

0 投票
1 回答
296 浏览

c - 内存泄漏:通过 valgrind 扫描时可能存在内存

通过 Valgrind 扫描我的代码时,我看到了一些随机行为。我已经释放了所有可能的内存块我仍然看到 Valgrind 说 1 个块没有正确释放。

目标:使用 cJSON.c 创建 3 级 json,然后在第二个块中修改 json 格式。

Valgrind 扫描报告:

我已经释放了所有可能的内存块,但无法理解为什么我仍然得到 1 个块没有正确释放。

0 投票
1 回答
147 浏览

c - 如何在 cJSON 和 protobuf 字节变量之间进行转换

我正在使用 protobuf-c 库和 cJSON,并且我有带有字段 bytes args = 1 的 protobuf 消息;// 命令特定的有效载荷

我正在将 cJSON 解析为 protobuf,如下所示:

然后我尝试将其解析回 cJSON 并添加到正确的消息格式:

我需要将消息从 cJSON 解析到 protobuf,然后再返回到 cJSON。最终 JSON 应如下所示:

但我得到的是:

编辑。一些随机生成器生成的示例消息:

0 投票
0 回答
478 浏览

lua - 如何修复“错误:构建错误:安装 cjson.dll 失败”

我想安装lua-cjson,运行时出现这个错误luarocks install lua-cjson

我的 cl 版本是https://imgur.com/a/YiSVqTm

我的 luarocks 版本是:

我不知道如何解决这个问题

这是我luarocks install lua-cjson在 VS 2019(2) 的开发人员命令提示符中运行时的输出:

我希望能够安装 luarocks 但它失败了。

0 投票
1 回答
473 浏览

c - 在读取 JSON 数组元素时使用 cJSON 问题

我正在编写一小段 c 代码来使用 gcc 中的 cJSON 库解析 json 数组元素。解析成功,但数组元素的打印显示为空。不确定是什么问题。

需要传入 src、dst 和设备索引列表的 json 数组输入。

https://jsonlint.com/验证的输出

第一个数据:

第二个数据:

文件路径&编译方法

代码:

输出:

第一次尝试: [ccode]$ ./jsonchkary.o jsonstrinput>>:{"NPCDevMoveReqList":[{"srcPid":"1","destPid":"2","devIdxs":["1","2 ","3"]},{"srcPid":"1","destPid":"3","devIdxs":["4","5","6"]}]}

第二次尝试:

0 投票
1 回答
741 浏览

c - C - 如何将宽字符日文字符转换为 UTF-8?

尝试将存储在宽字符中的日文字符转换为 UTF-8,以便使用 cJSON 库将值存储在 json 文件中。首先尝试使用wcstombs_s,但显然这不支持日文字符:

然后,根据其他答案,也是在从 json UTF-8 到 Wide char 的成功转换中,尝试了如下相反的功能,但目标缓冲区dest只包含垃圾字符:

wchar_t我试图转换的宽字符 ( )ササササササササササササササササ存储在japanese[i].name(a wchar_t*in a struct) 中。目标是使用 cJSONcJSON_CreateString将值保存在 UTF-8 编码的 json 文件中。

问题:在 C(不是 C++)中将日语从 wchar_t 转换为 UTF-8 char 的正确方法是什么?

0 投票
1 回答
2496 浏览

c - cJSON 键值解析

我正在使用 cJSON 解析存储在testdata.json文件中的 JSON,如下所示:

通过以下内容,我可以访问该text字段。

注意:这些参数是动态的,因为根据 JSON 文件包含的内容,可以有更多参数,例如volume、等。area这个想法是我有一个struct包含所有这些参数的,我必须检查 JSON 中提供的参数是否存在并相应地设置值。struct看起来像:

我试着这样做:

这返回Memory access error (memory dumped)加上我必须说明什么是键。如前所述,我不知道参数是什么。

如何存储键值对("length":10"width":16"height":16)以及如何根据 中的有效参数检查键JsonParameters

0 投票
0 回答
785 浏览

c - 已解析 JSON 的 CJSON 长度

我尝试了 cJSON,发现即使我给出了一个正确的 JSON,然后是一个不正确的 JSON,它也会将整个内容放入其parse_buffer结构 (in cJSON.c) 中并且只解析正确的 JSON。我可以通过执行以下操作轻松获得总解析内容的长度: buffer.lengthcJSON.c解析完成后。

如果我有一个包含以下内容的文件:

cJSON 将整个内容放入其缓冲区并仅解析有效部分。

如果在我的程序中我写:

它打印出来HelloWorld!!

有没有办法只获取已解析内容的长度,即已解析的正确 JSON?这在 cJSON 中有可能吗?

0 投票
2 回答
483 浏览

c - 使用 cJSON 读取密钥

我正在使用 cJSON 来解析包含键值的字符串。我想动态生成我的结构,为此我需要从这个字符串中读取所有键。

例如,我有一个像下面这样的 json,我想在运行时读取所有键。我不知道json中会出现哪些所有键。

我如何在不知道键的情况下读取键和值?

我尝试使用指针链接到下一个孩子,但这似乎没有给我正确的值。

感谢你的帮助 !

-谢谢,小号

0 投票
1 回答
207 浏览

c - 为什么我的程序在不同函数中第二次使用字符串后崩溃?

当我运行我的程序时,它调用了一个具有“char *msgtype”的函数并且该函数可能工作但是当另一个函数在其中使用不同的“char *msgtype”时,当程序到达包含它的行时,程序崩溃(并且即使在第二次程序崩溃时调用了第一个函数)。问题是什么 ?

如果我在第二个函数中更改名称,它只会工作一次,再次调用该函数后程序崩溃!