使用CparsingJSON
我试图find一个很好的方法来parsingJ中的C.我真的不需要一个庞大的库或任何东西,我宁愿有一个小而轻量级的function,但最好的文档,但最less。
有人有什么可以指点我吗?
Json并不是一个巨大的语言,因此它的库可能很小(至less比Xml库)。
在Json.org上链接了大量的C库 。 也许其中一个会为你工作。
cJSON有一个体面的API,是小的(2个文件,约700行)。 我首先看到的许多其他JSONparsing器都很庞大…我只是想parsing一些JSON。
编辑:多年来我们对cJSON做了一些改进 。
Jsmn非常简约,只有两个function可以使用。
NXJSONfunction全面但非常小(约400行代码)的JSONparsing器,它具有易于使用的API:
const nx_json* json=nx_json_parse_utf8(code); printf("hello=%s\n", nx_json_get(json, "hello")->text_value); const nx_json* arr=nx_json_get(json, "my-array"); int i; for (i=0; i<arr->length; i++) { const nx_json* item=nx_json_item(arr, i); printf("arr[%d]=(%d) %ld\n", i, (int)item->type, item->int_value); } nx_json_free(json);
我使用JSON-C作为一个工作项目,并会推荐它。 轻量级,并与开放许可发布。
文档包含在发行版中。 你基本上有*_add
函数来创buildJSON对象,等价的*_put
函数来释放它们的内存,以及用string表示方式来转换types和输出对象的工具函数。
许可证允许包含在您的项目中。 我们以这种方式使用它,将JSON-C编译为与主构build链接的静态库。 这样,我们不必担心依赖(除了安装Xcode)。
JSON-C也是在OS X(x86 Intel)和Linux(x86 Intel)下为我们构build的。 如果你的项目需要可移植,这是一个好的开始。
你可以看看Jansson
该网站陈述如下:Jansson是一个用于编码,解码和操纵JSON数据的C库。 它的特点是:
- 简单直观的API和数据模型
- 既可以编码,也可以从JSON解码
- 全面的文件
- 没有依赖于其他库
- 完整的Unicode支持(UTF-8)
- 广泛的testing套件
您是否需要parsing任意的JSON结构,或者只是针对您的应用程序的数据。 如果是后者,您可以通过不必生成任何哈希表/映射结构将JSON键映射到值来使其更轻,更高效; 你可以直接将数据直接存储到struct字段或其他任何东西。