

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# coreJSON 程式庫
<a name="freertos-lib-corejson"></a>

**注意**  <a name="out-of-date-message"></a>
此頁面上的內容可能不是up-to-date。如需最新更新，請參閱 [FreeRTOS.org 程式庫頁面。](https://www.freertos.org/Documentation/03-Libraries/01-Library-overview/01-All-libraries)

## 簡介
<a name="freertos-corejson-introduction"></a>

JSON (JavaScript 物件標記法） 是一種人類可讀取的資料序列化格式。它廣泛用於交換資料，例如使用 [AWS IoT Device Shadow 服務](https://docs.aws.amazon.com/iot/latest/developerguide/iot-device-shadows.html)，並且是許多 APIs的一部分，例如 GitHub REST 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 文件中的巢狀結構。堆疊在單一函數呼叫期間存在；不會保留。堆疊大小可以透過定義巨集 來指定`JSON_MAX_DEPTH`，其預設為 32 個層級。每個層級都會使用單一位元組。


****  
<a name="coreJSON-memory-estimate"></a>
<table>
<thead>
  <tr><th colspan="3">coreJSON 的程式碼大小 （使用 GCC for ARM Cortex-M 產生的範例）</th></tr>
  <tr><th>檔案</th><th>使用 -O1 最佳化</th><th>使用 -Os 最佳化</th></tr>
</thead>
<tbody>
  <tr><td>core\_json.c</td><td>2.9K</td><td>2.4K</td></tr>
  <tr><td>預估總計</td><td>2.9K</td><td>2.4K</td></tr>
</tbody>
</table>
