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

c - 在 Windows 中使用 cJSON

我想在带有 clion 的 Windows 上使用 cJSON 库。我已将 cJSON.h 和 cJSON.c 复制到我的项目目录中。我已将 cJSON.h 包含在此命令中:#include "cJSON.h" 当我尝试编译我的项目时,出现以下错误:

0 投票
0 回答
596 浏览

lua - 使用 make 和 luarocks 在 lua 中安装 CJSON 失败

我的目标是在 Windows 10(64 位)上安装带有 luarocks 的 cjson,到目前为止我所做的:

尝试通过 make 安装:

  • 将此luajit 安装放在路径“C:\torch”上并手动设置以下所有路径变量(请参阅问题)
    • 路径 = "C:\torch\bin;"%PATH%
    • LUA_CPATH="C:\torch\bin\?.dll;;"
    • LUA_DEV="C:\火炬;"
    • LUA_PATH="C:\torch\lua\?;C:\torch\lua\?.lua;C:\torch\lua\?\init.lua;;"
  • 将此版本的lua-cjson-2.1.0放在以下文件夹中:“C:\Users\username\Desktop\lua-cjson-2.1.0”
  • 使用 make 版本 3.81、cmake 3.13.2 安装 mingw 并将“C:\MinGW\msys\1.0\bin\”和“C:\Program Files\CMake\bin\”添加到 Path 变量
  • 取消注释 Windows(MingGW) 的变量并在 lua-cjson-2.1.0 的 Makefile 中设置 PREFIX = C:\torch\
  • 通过 admin-shell 转到“C:\Users\username\Desktop\lua-cjson-2.1.0”
  • make install ” 产生以下输出:

使用 luarocks 的另一次尝试也不起作用:

  • 调用 ""C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x64"

安装过程有什么问题?

0 投票
1 回答
972 浏览

c - 我们如何使用 cJSON 向解析的 JSON 添加新项目?

我正在为我的客户端编写一个保存消息的服务器。我使用 cJSON 将它们保存为 JSON 格式 - by Dave Gambler - 并将它们保存在文本文件中。从文件中读取字符串并解析后,如何将新项目添加到我的数组中?JSON 字符串如下所示:

{ "messages":[ { "sender":"SERVER","message":"Channel Created" } , { "sender":"Will","message":"Hello Buddies!" } ] }

0 投票
1 回答
156 浏览

cjson - 如何检查 cJSON 指针是否较早初始化/设置?

我有一个带有 cJSON 指针的结构,如下所示:

在我的代码中的某处,我创建了 cJSON 项,如 myStruct.myJSON1 = cJSON_CreateObject()

在代码的最后,我想在分配的那些指针上调用 cJSON_Delete()。我认为这是经典的 C 案例,无法确定指针是否以某种方式分配。当然,我可以保留一个标志来跟踪,但我想要一个简单的方法。我读...

cJSON 结构如下:

函数cJSON_Invalid()可用。文档指出“(检查 cJSON_IsInvalid):表示不包含任何值的无效项目。如果您将项目设置为全零字节,您将自动拥有此类型。” 我必须将结构设置为 0 还是只输入?

换句话说,我的问题是:在不创建额外变量的情况下检查 cJSON 指针是否被分配的最简单方法是什么?也许将“类型”设置为零?我可以尝试这样的选择,但我想要一个适用于所有情况的明确答案。

0 投票
0 回答
92 浏览

lua - lua - 检查用户数据是否为零

我尝试使用 lua cjson 解析为以下 json :

它被解析为以下地图:

我试图做类似的事情:

那可能吗?

(userdata(nil) 不是有效的表达式)

0 投票
0 回答
539 浏览

nginx - 未定义符号:lua_rotate

我已经完成了以下步骤,从这个 repo 下载了 lua-cjson-2.1.0.7,不知道出了什么问题。任何人都可以知道发生了什么以及如何解决这个问题?

然后,

错误:

nginx.conf 有以下内容:

lua_package_path "/usr/local/lib/lua/?.lua;;";

0 投票
1 回答
206 浏览

c - 如何使用 cJSON 在名称/值对中查找名称

cJSON提供了一个函数

CJSON_PUBLIC(cJSON *) cJSON_GetObjectItemCaseSensitive(const cJSON * const object, const char * const string)

我创建了一个测试功能

输出是

`

如果我使用这个字符串,

const char *jsonteststr1 = "{\"a\":\"1\",\"b\":\"2\",\"c\":\"3\"}";

GetObjectItemCaseSensitive()将找到“a”、“b”和“c”。

GetObjectItemCaseSensitive()似乎没有递归。

难道我做错了什么?我不明白如何使用GetObjectItem()

我正在使用版本 1.7.12

0 投票
1 回答
2040 浏览

c - 我不明白如何使用 cJSON 将 JSON 文件解析为结构

我有一个相当简单的结构Message,其中包含两个类型的字段Envelope

一切都归结为一个字节数组(表示为 char*,因为 C 没有字节类型)

我只想使用 cJSON 读取 JSON 文件并将其反序列化为 Message 对象。我已阅读cJSON github 页面上的整个文档,但没有说明如何执行此操作。这是我想做的一个例子:

我尝试使用名称中带有对象的 cJSON 函数,但所做的只是修改/返回 cJSON*。我需要将它从 cJSON 获取到不同的结构中。

谢谢你的帮助。

0 投票
1 回答
93 浏览

c - 如何以通用方式解析cJSON中的以下对象

由于我是 cJOSN 解析器的新手,请有人帮助以通用方式解析以下 json。

这里名称力量是固定的。所以如果我选择person1,必须得到person1的名字和强度键值。(人数可能增加或减少)

0 投票
0 回答
83 浏览

c++ - CJson - 在字符串周围插入缺少的引号

我有一个下面给出的格式的文本文件(这只是示例文件,但实际上文件是带有键值的大文件)。键的某些值将在文件中具有格式(在下面的文件中查找端口键的值)。这是我的输入文件。

我正在使用 C++ 中的 CJson 库将此文件转换为 Json。由于与端口键对应的值不是有效的字符串或值,因此 CJson 会给出错误消息“在字符串周围插入缺失的引号”。所以我尝试使用下面的代码将端口值转换为字符串。但我无法插入缺少的引号。您能否帮助我如何“在字符串周围插入缺少的引号”。

我试过的代码:

文本文件