

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# coreJSON ライブラリ
<a name="freertos-lib-corejson"></a>

**注記**  <a name="out-of-date-message"></a>
このページのコンテンツは最新ではない可能性があります。最新の更新については、[FreeRTOS.org ライブラリのページ](https://www.freertos.org/Documentation/03-Libraries/01-Library-overview/01-All-libraries)を参照してください。

## 序章
<a name="freertos-corejson-introduction"></a>

JSON (JavaScript Object Notation) は、人間が読解可能なデータシリアル化形式です。JSON は [AWS IoT Device Shadow](https://docs.aws.amazon.com/iot/latest/developerguide/iot-device-shadows.html) などのサービスでデータ交換に広く使用されており、GitHub REST API など多くの API に含まれています。JSON は Ecma International によって標準として管理されています。

coreJSON ライブラリは、[ECMA-404 標準 JSON データ交換構文](http://www.ecma-international.org/publications/files/ECMA-ST/ECMA-404.pdf)を厳密に適用し、キー検索をサポートするパーサーを提供します。ライブラリは C 言語で記述されており、ISO C90 と MISRA C:2012 に準拠するように設計されています。ライブラリには、安全にメモリを使用し、ヒープ割り当てがないことを示す[プルーフ](https://www.cprover.org/cbmc/)があります。そのため、IoT マイクロコントローラーに適しています。また、他のプラットフォームに完全に移植することもできます。

## メモリ使用量
<a name="freertos-corejson-memory"></a>

coreJSON ライブラリは、内部スタックを使用して JSON ドキュメント内のネストされた構造をトラッキングします。スタックは 1 つの関数呼び出しの間存在し、保持されません。スタックサイズは、マクロ (`JSON_MAX_DEPTH`) を定義することで指定できます。デフォルトは 32 レベルです。各レベルは 1 バイトを消費します。


****  

| coreJSON のコードサイズ (ARM Cortex-M 向けの GCC で生成された例) | システム | -O1 最適化を使用 | -Os 最適化を使用 | 
| --- | --- | --- | --- | 
| core\$1json.c | 2.9 K | 2.4 K | 
| 合計 (概算) | 2.9 K | 2.4 K | 