Quality RTOS & Embedded Software

LIBRARIES

coreJSON library

Introduction

JSON (JavaScript Object Notation) is a human-readable data serialization format which comes from JavaScript. It is widely used to exchange data, such as with the AWS IoT Device Shadow service, and is part of many APIs, such as the GitHub REST API. JSON is maintained as a standard by Ecma International.

The coreJSON library provides a parser that supports key lookups while strictly enforcing the standard (ECMA-404: The JSON Data Interchange Standard). The library is written in C and designed to comply with ISO C90 and MISRA C:2012. It has proofs showing safe memory use and no heap allocation, making it suitable for IoT microcontrollers, but also fully portable to other platforms.

Source Code Organization and Demos

The coreJSON library can be found in the main FreeRTOS download in the FreeRTOS/FreeRTOS-Plus/Source/coreJSON directory. A demonstration of the coreJSON library can viewed in the IoT Device Shadow demo.

Memory Usage

The coreJSON library uses an internal stack to track nested structures in a JSON document. The stack exists for the duration of a single function call; it is not preserved. Stack size may be specified by defining the macro JSON_MAX_DEPTH, which defaults to 32 levels. Each level consumes a single byte.

 

Code Size of coreJSON (example generated with GCC for ARM Cortex-M)
FileWith -O1 OptimisationWith -Os Optimisation
core_json.c2.7K2.2K
Total estimate2.7K2.2K
Copyright (C) Amazon Web Services, Inc. or its affiliates. All rights reserved.