Description
JavaScript Object Notation (JSON) is a text-based, language-independent data format using human-readable text to represent attribute–value pairs and arrays. In 3GPP, starting from Release 12 and heavily adopted in the 5G core (5GC) from Release 15, JSON is the primary data serialization format for HTTP/2-based Service-Based Interfaces (SBIs) between Network Functions (NFs). It works by structuring data as collections of name/value pairs (objects) and ordered lists of values (arrays), transmitted as UTF-8 encoded text. Key architectural components include JSON Schema for defining data structures in OpenAPI specifications, and its use within HTTP/2 messages for operations like NF discovery, registration, and service invocation. The JSON payloads carry critical information such as NF profiles, subscription data, policy rules, and session management contexts. Its role is central to the stateless, modular 5G core architecture, enabling efficient, flexible, and developer-friendly machine-to-machine communication. Specifications detail media type usage (application/json), encoding rules, and mandatory/optional fields for numerous service operations.
Purpose & Motivation
JSON was adopted in 3GPP to provide a simpler, more efficient alternative to XML for data interchange in network APIs, particularly with the shift to cloud-native, service-based architectures in 5G. Previous approaches using XML or ASN.1 PER could be verbose and complex to parse, slowing development and processing. JSON solves this by offering a lightweight, easily parsed format that aligns with modern web development practices, reducing overhead and improving interoperability in RESTful APIs. The historical motivation was the need for agile service exposure and management in LTE/EPC (starting in Rel-12 for certain interfaces) and its full embrace for 5G SBI to support network slicing, automation, and rapid service deployment.
Key Features
- Lightweight, text-based format reducing parsing overhead and bandwidth
- Native compatibility with web technologies and RESTful API design
- Structured as collections of name/value pairs and ordered lists
- UTF-8 encoding ensuring broad character set support
- Used for HTTP/2 message payloads in 3GPP Service-Based Interfaces
- Defined via JSON Schema in 3GPP OpenAPI specifications for interoperability
Evolution Across Releases
JSON was initially introduced for certain northbound APIs and management interfaces, such as the Application Programming Interface (API) for the Service Capability Exposure Function (SCEF). The architecture leveraged JSON over HTTP for representing structured data in a web-friendly manner, enabling simpler integration with external applications.
Defining Specifications
| Specification | Title |
|---|---|
| TS 23.701 | 3GPP TS 23.701 |
| TS 23.722 | 3GPP TS 23.722 |
| TS 24.559 | 3GPP TS 24.559 |
| TS 26.119 | 3GPP TS 26.119 |
| TS 26.347 | 3GPP TS 26.347 |
| TS 26.510 | 3GPP TS 26.510 |
| TS 26.512 | 3GPP TS 26.512 |
| TS 26.517 | 3GPP TS 26.517 |
| TS 26.804 | 3GPP TS 26.804 |
| TS 26.841 | 3GPP TS 26.841 |
| TS 26.854 | 3GPP TS 26.854 |
| TS 26.857 | 3GPP TS 26.857 |
| TS 26.955 | 3GPP TS 26.955 |
| TS 26.956 | 3GPP TS 26.956 |
| TS 26.998 | 3GPP TS 26.998 |
| TS 28.536 | 3GPP TS 28.536 |
| TS 28.541 | 3GPP TS 28.541 |
| TS 28.623 | 3GPP TS 28.623 |
| TS 29.116 | 3GPP TS 29.116 |
| TS 29.122 | 3GPP TS 29.122 |
| TS 29.155 | 3GPP TS 29.155 |
| TS 29.222 | 3GPP TS 29.222 |
| TS 29.250 | 3GPP TS 29.250 |
| TS 29.251 | 3GPP TS 29.251 |
| TS 29.502 | 3GPP TS 29.502 |
| TS 29.503 | 3GPP TS 29.503 |
| TS 29.505 | 3GPP TS 29.505 |
| TS 29.507 | 3GPP TS 29.507 |
| TS 29.508 | 3GPP TS 29.508 |
| TS 29.514 | 3GPP TS 29.514 |
| TS 29.518 | 3GPP TS 29.518 |
| TS 29.519 | 3GPP TS 29.519 |
| TS 29.520 | 3GPP TS 29.520 |
| TS 29.521 | 3GPP TS 29.521 |
| TS 29.525 | 3GPP TS 29.525 |
| TS 29.534 | 3GPP TS 29.534 |
| TS 29.540 | 3GPP TS 29.540 |
| TS 29.549 | 3GPP TS 29.549 |
| TS 29.550 | 3GPP TS 29.550 |
| TS 29.551 | 3GPP TS 29.551 |
| TS 29.554 | 3GPP TS 29.554 |
| TS 29.562 | 3GPP TS 29.562 |
| TS 29.563 | 3GPP TS 29.563 |
| TS 29.817 | 3GPP TS 29.817 |
| TS 29.890 | 3GPP TS 29.890 |
| TS 29.891 | 3GPP TS 29.891 |
| TS 32.158 | 3GPP TR 32.158 |
| TS 32.866 | 3GPP TR 32.866 |
| TS 33.117 | 3GPP TR 33.117 |
| TS 33.122 | 3GPP TR 33.122 |
| TS 33.180 | 3GPP TR 33.180 |
| TS 33.514 | 3GPP TR 33.514 |
| TS 33.517 | 3GPP TR 33.517 |
| TS 33.841 | 3GPP TR 33.841 |
| TS 33.880 | 3GPP TR 33.880 |
| TS 33.938 | 3GPP TR 33.938 |