

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# 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 객체 표기법)은 사람이 읽을 수 있는 데이터 직렬화 형식입니다. [AWS IoT 디바이스 섀도우 서비스](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 문서의 중첩 구조를 추적합니다. 스택은 단일 함수 직접 호출 기간 동안 존재하며 보존되지 않습니다. 스택 크기는 매크로 `JSON_MAX_DEPTH`를 정의하여 지정할 수 있으며, 기본값은 32레벨입니다. 각 레벨은 1바이트를 소비합니다.


****  

| coreJSON 코드 크기(ARM Cortex-M용 GCC로 생성된 예제) | 파일 | -O1 최적화 | -Os 최적화 | 
| --- | --- | --- | --- | 
| core\$1json.c | 2.9K | 2.4K | 
| 총 추정치 | 2.9K | 2.4K | 