问题标签 [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 投票
2 回答
3967 浏览

c - C lib 直接从文件流中读取和解析 JSON

我已经看到了许多用于在 C 中解析 JSON 的库,但它们都不能直接从文件流中读取和解析。所有此类库(例如 Yajl、cjson)的问题在于,如果文件中的 json 文档很大,那么您必须首先将所有这些内容读入内存缓冲区,然后运行这些库提供的 API 来解析它。

API 通常看起来像

它将 char* 带到缓冲区。

我想避免这种情况,因为我的文件可能非常大,而且我事先不知道文件的大小。此外,这些库维护对实际缓冲区中的对象、数组的引用以检索值,因此我无法释放原始缓冲区。

是否有可以直接从文件流中读取和解析的 JSON 解析库?

0 投票
4 回答
46008 浏览

c - Using cJSON to read in a JSON array

I am attempting to use the cJSON library, written by Dave Gamble, to read in the following JSON array:

From reading his documentation, I found ways to read in individual Objects, but nothing regarding Arrays, and I wasn't able to surmise how to do it from the examples given.

Here's what I'm trying:

I know this is wrong, and not just because it's not working, but I can't figure out how to make it right.

Obviously I'm going to need to loop the process of reading in all of the entries for each index of the array. I have no idea how I'm going to do that though, because I don't know where I should be using the indexes in this code, or if it is even the right start. There is a cJSON_GetArrayItem(), but it takes only a number (presumably an index) and no string to indicate which field it wants.

0 投票
4 回答
580 浏览

c - 使用具有结构和 strcpy 的 malloc

我正在尝试制作一个名为 的结构数组,StatusItem如下所示:

此外,由于我希望此数组具有任何大小,因此我正在使用malloc. 所以数组定义如下:

(然后将其传递给检索所有值的函数,如下所示。)

有一些代码涉及 cJSON 库获取 的字符串值nameindexoptional放入上面引用的变量中,并且它们存储在valuestring这些变量的字段中。

我检查了涉及 cJSON 库的所有内容都可以正常工作,并返回正确的值,但程序无法访问或存储statusItems数组中的值。

有任何想法吗?我几乎可以肯定它涉及malloc我的一些滥用。

0 投票
3 回答
579 浏览

c - cJSON:无法理解它的源代码

当我阅读 cJSON 的代码时,对代码的理解有问题:

0 投票
2 回答
6500 浏览

c - 使用 cJSON 库解析 json 数组

首先,这是一个非常广泛的问题,当我要求社区为我编写代码时可能会遇到这个问题。那不是我的意图,但我很迷茫,我不知道如何提供足够的信息。

我正在尝试使用 Dave Gamble 编写的 cJSON 库,我发现这对于用于我的嵌入式设备进行 JSON 解析和组合非常有用。

读取以下 JSON 数组

..并解析使用此方法获取对象

但我无法解析键“名称”和对象简单键值,

我试过这个

但是没有用,如何解析数组对象和简单的键值..

0 投票
2 回答
5578 浏览

c - cJSON 内存泄漏

我在我的程序中使用 cJSON 将我的值转换为 JSON 并将其写入文件。这是我的代码示例:

效果很好,但一段时间后我发现 Linux(嵌入式)由于内存使用异常或设备(在 Cortex A8 上)挂起而杀死了我的程序。调试后我发现,即使我在最后删除了指针,泄漏也完全出现在这个函数中。谁能看到那个泄漏?

0 投票
2 回答
3880 浏览

c - Should the return value of cJSON_Print() be freed by the caller?

I am using the cJSON library and I have a function as follows:

Will this function leak memory?

0 投票
1 回答
311 浏览

c - 用 CJSON 解析的 JSON 中的第一个数字始终为 0

我正在尝试使用 cJSON 解析由网络服务器上的 CGI 文件接收的 JSON 文件,但是 JSON 中的第一个数字不断更改为 0。

我制作了一小段代码,用于测试:

通过查询字符串将 JSON {"test":123, "test2":123} 传递给它会导致程序输出:

我完全不知道我在这里做错了什么,如果有人能给我一些关于问题可能是什么的想法,我将不胜感激。

0 投票
1 回答
474 浏览

c - 如何在 C Linux 中解析 JSON 响应?

我使用了许多工具,例如 cJSON、nxjson 和 jsmn 解析器来解析 JSON 响应,但我使用的工具都没有以某种结构格式提供输出。下面是我在字符串中的 JSON 响应:

我使用了 cJSON 工具,输出如下,它也是一个字符串:

但我不想要上述格式的输出。我想要 C 结构形式的输出。是否可以在 C 结构中获得输出?

0 投票
1 回答
1130 浏览

c - cJSON_Print 不显示更新的值

我使用 Dave Gamble 的 cJSON 并遇到以下问题。如果我更改 cJSON 结构中的值,然后使用 cJSON_Print 命令,我不会得到更新的值,而是得到默认值。

这是我用于小测试的代码,它给了我这些结果:

有谁知道我做错了什么,以及如何使用 cJSON_Print 命令获得正确的值?