问题标签 [jansson]

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 投票
0 回答
143 浏览

c - 什么时候释放 json_string() 分配的内存?

这是调用 json_string() 的堆栈跟踪:

  1. json_string(const char *值)

  2. json_stringn(值,strlen(值))

  3. json_stringn_nocheck(值,长度)

  4. 字符串创建(值,长度,0)

string_create然后调用 json_strndup(value,len) 来复制字符串的值。

问题是我无法找出这个分配的内存何时value被释放。

0 投票
1 回答
877 浏览

json - json-c json_object_to_json_string() 等价 api 在 jansson 库中

在当前代码中,我使用的是 json-c。我正在迁移到 jansson。在 jansson 中需要一个等效的 api 来转换 json_object_to_json_string。我找到了一个,但它需要一个 json 字符串对象,否则它返回 null。

const char *json_string_value(const json_t *string) - 不工作

但我的输入是一个JSON对象而不是一个JSON字符串

样本:

谢谢。

0 投票
1 回答
1024 浏览

c - jansson-更改文件中的json值

我有一个 json 文件。并且,文件已成功加载。但是,我想更改如下值并保存带有修改的 json 文件。但是,该值根本没有改变和保存。我该怎么办?

来自 /home/pi/desktop/test.json

到 /home/pi/desktop/test.json

所以我做了

0 投票
2 回答
240 浏览

c++ - 如何在我的 C++ 代码中获得运行时的双重免费错误

我在我的 c++ 代码中使用 Jansson 库。在库中创建任何 Jansson 变量时,应该释放该变量以释放引用,我正在使用 'json_decref(json_t *json)' 方法来释放。但有时它会导致双重释放问题,而我在运行时没有遇到问题。也许这不正常,但是当我尝试释放一些引用时,我想得到一个运行时错误。例如,我正在运行以下测试代码,

如您所见,存在问题,并且我没有收到任何运行时错误,例如双重释放。

另外,我正在使用 CMake 来编译我的源代码。也许任何 cmake 标志都可以解决我的问题。

任何想法 ?

0 投票
0 回答
45 浏览

c - 使用 Jansson API 编辑 json 对象

我正在使用 jansson 库,我想编辑一个 Json 对象,我该怎么做,我必须使用任何特定的 API 吗?如果这个问题被重复,请饶了我。提前致谢。

0 投票
2 回答
201 浏览

c++ - 无法区分 JSON 对象/数组/字符串

我正在尝试使用 Jansson 库来解析 JSON 字符串。我无法正确解析它。这是我在 C++ 中的代码

我不明白Rescue是字符串、对象还是数组。我尝试了所有三个选项 as if (!json_is_string(Rescue)),但它总是打印if (!json_is_array(Rescue))" error: Rescue is not string"if (!json_is_object(Rescue))

请问有什么帮助吗?

0 投票
1 回答
148 浏览

c - 如何在 Azure Sphere Visual Studio 项目中添加库依赖项?

我正在构建一个 Azure Sphere C 应用程序,从 HTTPS_Curl_Easy 示例项目开始。我需要json解析,所以我下载了Jansson库代码。Jansson 在使用 Cmake 时生成的项目不会添加为我的 Sphere 项目的引用,因为它以 Win32 为目标,所以我创建了一个空的 Azure 球体库项目,将所有 jansson 代码复制到其中并弄乱了定义的变量,直到项目编译。

现在我正在尝试将 Jansson 库添加到我的 HTTPS_Curl_Easy 示例中,但是我无法让它在项目中可用(它说 jansson.h 不可用): 在此处输入图像描述

两个具体问题:

  1. 在 azure Sphere 库项目中,我如何告诉它要导出什么?项目模板有一个 Inc\Public 文件夹 - 头文件是否必须在其中?(我的不是因为源不会在那里构建)

  2. 我应该如何在 Azure Sphere 项目中添加对库项目的引用?我右键单击该项目并单击 add->reference 以添加我的 jansson_sphere 库项目,但尽管它在项目文件中,但它没有显示在我能找到的任何依赖项列表中。

我的项目和我尝试构建 Jansson 的源代码在 github 中:https ://github.com/Joon/HTTPS_Curl_Easy

0 投票
1 回答
409 浏览

c - 如何将 librdkafka 有效负载转换为 json 以获取参数值?

我正在使用 librdkafka 的consumer.c 示例文件,我试图弄清楚如何将 rkm 有效负载(在第 244 行打印出来)转换为 json,以便我可以从 json 中获取参数的值.

现在我正在使用jansson,但遇到了一些问题,如果需要我可以扩展。

librdkafka 或我不知道的标准 C 库中是否有此功能?

0 投票
1 回答
188 浏览

c - 为什么添加 aSan 库后我的代码停止崩溃?

我目前正在调试 C 代码。这基本上是来自数据收集平台的客户端,我从链接列表中读取到奇怪的错误。问题基本上是最后一项的“下一个”指针在某个未知点从 NULL 更改为 0xFFFFFFFFF。然后我尝试使用地址清理程序编译我的库,以便找到错误错误可能在哪里并且错误消失了,或者最好说错误当前是隐藏的。可能吗?Asan 库如何影响代码以使其不崩溃?提前致谢。

编辑:抱歉描述不佳,我会尝试更深入。我一直在调试代码,我发现问题出在哪里。它位于 json 配置文件的解析函数中(为此我使用 jansson 库)。json格式是这样的:

我有一个这样的结构来存储这些数据

真正的问题在于列表 XXX_systems。我每个设备都有一个列表,我可以在同一个结构中拥有多个设备,其中第一个元素(在 XXX_Device 设备数组中)是主要单元。正是在这个设备中,我丢失了信息。解析功能看起来工作正常。在函数结束时,结构具有权限值,但是当我释放 json“对象”时,我失去了 的引用XXX_systems->next,但奇怪的是,如果我不释放一些 json“对象”,一切正常.. .

因此,在这种情况下,我丢失了信息:

但是如果我这样评论 json_decref

一切正常...

0 投票
0 回答
155 浏览

c - 共享库符号冲突 - C

我有一个链接到 json-c 和第三方库的应用程序。这个第三方库链接到 libjansson 库。因此,当我执行我的应用程序时,由于内存损坏作为无效指针,它会崩溃。

经过分析,这两个库都有json_object_get()导致奇怪行为的 API。如果我从 json-c 库更改此 API 名称,应用程序将按预期工作。

由于我什至尝试将 libjannson 静态链接到第三方库以及将 json-c 静态链接到应用程序,它不会崩溃但仍然会失败 json-c 调用。

场景如下:

  • app链接到 libjson_c_lib.so 和 libjansson_c_lib.so。这两个都是 json-c 和 jannson 之上的包装库。

  • libjson_c_so链接到 libjson-c.so

  • libjansson_c.so链接到 libjansson.so。

你能请人帮忙吗?