20

JSONでエンコードされたデータをC構造体に読み込みたいのですが。jsonデータの構造は事前にわかっており、比較的フラットで、いくつかのCstructtypedefによって模倣されています。第3レベル程度の配列には、一度に1つずつ処理する必要のあるJSONオブジェクトの非常に長いリストが含まれています。

このコードは、非常に制約のあるシステムで実行することを目的としているため、ライブラリは動的にメモリを割り当てないようにする必要があります。

CrockfordのJSONライブラリのリストがあることは知っていますが、どちらが上記の問題に最適かはよくわかりません。

4

2 に答える 2

22

jsmn lib を試してみてください。2つの malloc だけで任意の json ファイルを解析できることが気に入っています。

jsmn は、JSON データ形式を解析するための最小限のライブラリです。小規模なプロジェクトで簡単に使用したり、組み込みシステムに統合したりできます。

次の理由から、jsmn が適しています。

  • C89コンパイラバージョンと互換性があります
  • 動的メモリ割り当てを使用しません
  • 可能な限り最小のオーバーヘッドです
  • JSON データを解析するために必要なパスは 1 つだけです。
  • 依存関係がなく、libc でさえも
  • MIT ライセンスの下で配布されているため、独自のプロジェクトで使用できます
于 2012-05-20T17:52:04.357 に答える
4

json-cを試してみてください。これは最も一般的なものの1つであり、オープンソースであり、Windows(Win32)でも機能します。

JSON-Cは、参照カウントオブジェクトモデルを実装します。これにより、CでJSONオブジェクトを簡単に構築し、JSON形式の文字列として出力し、JSON形式の文字列を解析してJSONオブジェクトのC表現に戻すことができます。

于 2012-05-20T15:10:48.987 に答える