问题标签 [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.
c - C lib 直接从文件流中读取和解析 JSON
我已经看到了许多用于在 C 中解析 JSON 的库,但它们都不能直接从文件流中读取和解析。所有此类库(例如 Yajl、cjson)的问题在于,如果文件中的 json 文档很大,那么您必须首先将所有这些内容读入内存缓冲区,然后运行这些库提供的 API 来解析它。
API 通常看起来像
它将 char* 带到缓冲区。
我想避免这种情况,因为我的文件可能非常大,而且我事先不知道文件的大小。此外,这些库维护对实际缓冲区中的对象、数组的引用以检索值,因此我无法释放原始缓冲区。
是否有可以直接从文件流中读取和解析的 JSON 解析库?
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.
c - 使用具有结构和 strcpy 的 malloc
我正在尝试制作一个名为 的结构数组,StatusItem
如下所示:
此外,由于我希望此数组具有任何大小,因此我正在使用malloc
. 所以数组定义如下:
(然后将其传递给检索所有值的函数,如下所示。)
有一些代码涉及 cJSON 库获取 的字符串值name
,index
并optional
放入上面引用的变量中,并且它们存储在valuestring
这些变量的字段中。
我检查了涉及 cJSON 库的所有内容都可以正常工作,并返回正确的值,但程序无法访问或存储statusItems
数组中的值。
有任何想法吗?我几乎可以肯定它涉及malloc
我的一些滥用。
c - cJSON:无法理解它的源代码
当我阅读 cJSON 的代码时,对代码的理解有问题:
c - 使用 cJSON 库解析 json 数组
首先,这是一个非常广泛的问题,当我要求社区为我编写代码时可能会遇到这个问题。那不是我的意图,但我很迷茫,我不知道如何提供足够的信息。
我正在尝试使用 Dave Gamble 编写的 cJSON 库,我发现这对于用于我的嵌入式设备进行 JSON 解析和组合非常有用。
读取以下 JSON 数组
..并解析使用此方法获取对象
但我无法解析键“名称”和对象简单键值,
我试过这个
但是没有用,如何解析数组对象和简单的键值..
c - cJSON 内存泄漏
我在我的程序中使用 cJSON 将我的值转换为 JSON 并将其写入文件。这是我的代码示例:
效果很好,但一段时间后我发现 Linux(嵌入式)由于内存使用异常或设备(在 Cortex A8 上)挂起而杀死了我的程序。调试后我发现,即使我在最后删除了指针,泄漏也完全出现在这个函数中。谁能看到那个泄漏?
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?
c - 用 CJSON 解析的 JSON 中的第一个数字始终为 0
我正在尝试使用 cJSON 解析由网络服务器上的 CGI 文件接收的 JSON 文件,但是 JSON 中的第一个数字不断更改为 0。
我制作了一小段代码,用于测试:
通过查询字符串将 JSON {"test":123, "test2":123} 传递给它会导致程序输出:
我完全不知道我在这里做错了什么,如果有人能给我一些关于问题可能是什么的想法,我将不胜感激。
c - 如何在 C Linux 中解析 JSON 响应?
我使用了许多工具,例如 cJSON、nxjson 和 jsmn 解析器来解析 JSON 响应,但我使用的工具都没有以某种结构格式提供输出。下面是我在字符串中的 JSON 响应:
我使用了 cJSON 工具,输出如下,它也是一个字符串:
但我不想要上述格式的输出。我想要 C 结构形式的输出。是否可以在 C 结构中获得输出?
c - cJSON_Print 不显示更新的值
我使用 Dave Gamble 的 cJSON 并遇到以下问题。如果我更改 cJSON 结构中的值,然后使用 cJSON_Print 命令,我不会得到更新的值,而是得到默认值。
这是我用于小测试的代码,它给了我这些结果:
有谁知道我做错了什么,以及如何使用 cJSON_Print 命令获得正确的值?