使用CparsingJSON

我试图find一个很好的方法来parsingJ中的C.我真的不需要一个庞大的库或任何东西,我宁愿有一个小而轻量级的function,但最好的文档,但最less。

有人有什么可以指点我吗?

Json并不是一个巨大的语言,因此它的库可能很小(至less比Xml库)。

在Json.org上链接了大量的C库 。 也许其中一个会为你工作。

cJSON有一个体面的API,是小的(2个文件,约700行)。 我首先看到的许多其他JSONparsing器都很庞大…我只是想parsing一些JSON。

编辑:多年来我们对cJSON做了一些改进 。

Jsmn非常简约,只有两个function可以使用。

http://zserge.bitbucket.org/jsmn.html

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字段或其他任何东西。