私はCでJSONを解析するための良い方法を見つけようとしています。私は本当に巨大なライブラリなどを必要としません。
誰かが私を指すことができる何かを持っていますか?
Jsonはそもそも巨大な言語ではないので、Jsonのライブラリーは(少なくともXmlライブラリーよりも)小さい可能性があります。
たくさんの Json.orgでリンクされたCライブラリ があります。たぶんそのうちの1つがあなたのためにうまくいくでしょう。
Jsmnは非常に最小限であり、使用する機能は2つだけです。
NXJSON はフル機能でありながら非常に小さい(〜400行のコード)JSONパーサーで、使いやすい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);
Jansson を見ることができます
Webサイトには次のように記載されています。Janssonは、JSONデータのエンコード、デコード、および操作用のCライブラリです。機能:
作業プロジェクトに JSON-C を使用しましたが、推奨します。軽量で、オープンライセンスでリリースされます。
ドキュメントは配布物に含まれています。基本的に、JSONオブジェクトを作成する*_add
関数、メモリを解放する同等の*_put
関数、および型を変換して文字列表現のオブジェクトを出力するユーティリティ関数があります。
ライセンスにより、プロジェクトに含めることができます。この方法で使用し、JSON-Cをメインビルドにリンクされた静的ライブラリとしてコンパイルしました。そうすれば、依存関係を心配する必要がなくなります(Xcodeのインストール以外)。
JSON-Cは、OS X(x86 Intel)およびLinux(x86 Intel)でも問題なく構築されています。プロジェクトを移植可能にする必要がある場合、これは良い出発点です。
任意のJSON構造、またはアプリケーション固有のデータのみを解析する必要がありますか。後者の場合、JSONキーを値にマッピングするハッシュテーブル/マップ構造を生成する必要がないため、はるかに軽量で効率的になります。代わりに、データを構造体フィールドなどに直接保存できます。