JCR

JSON Content Rules

Protocol →
Introduced in Rel-13

JCR is a formal language for specifying the structure, constraints, and validation rules for JSON data in 3GPP network APIs and service interfaces to ensure consistency and interoperability.

Category
Protocol
Introduced
Rel-13
Where
Core Network › 5G Core
Specifications
1 specs
JCR Description Purpose Related Classification Detected Changes Specifications

Description

JSON Content Rules (JCR) is a specification language standardized by 3GPP, primarily documented in TS 29.155. It defines a syntax and semantics for creating rules that describe the expected structure and content of JSON documents. These rules act as a schema, specifying allowed data types (e.g., strings, numbers, booleans, arrays, objects), mandatory and optional fields, value constraints (e.g., ranges, patterns, enumerations), and nesting relationships. In practice, JCR rules are textual definitions that can be processed by validation engines. A network function or API gateway can use a JCR validator to check incoming or outgoing JSON messages against the predefined rules, ensuring they conform to the expected format before further processing. This validation is crucial for preventing malformed data from causing errors in service logic or interoperability issues between systems. The language supports complex constructs like conditional rules (e.g., if a field 'serviceType' is 'VoLTE', then another field 'codec' must be present), references for reusing common rule definitions, and annotations for documentation. Its role in the 3GPP ecosystem is to provide a machine-readable contract for data exchange, particularly in Service-Based Interfaces (SBIs) within the 5G Core network, where APIs extensively use JSON. By formalizing data expectations, JCR reduces integration effort, aids in automated testing, and enhances the reliability of network service interactions.

Purpose & Motivation

JCR was created to address the growing use of JSON as the primary data interchange format in modern, web-oriented network architectures, specifically the 5G Service-Based Architecture (SBA). Prior approaches often relied on informal documentation or proprietary schema definitions, leading to inconsistencies, integration errors, and increased development time for network function vendors and application developers. The motivation stemmed from the need for a standardized, vendor-neutral way to define the precise structure of JSON payloads used in 3GPP-defined APIs, such as those between Network Repository Functions (NRF), Network Exposure Functions (NEF), and other core network elements. By providing a formal rule language, 3GPP aimed to ensure that all implementations interpret API data contracts identically, thereby solving interoperability problems that could arise from ambiguous specifications. It also facilitates automated tooling for code generation, documentation, and validation, streamlining the development and testing lifecycle for 5G network software. Historically, similar needs in other protocols were met by languages like ASN.1 or XML Schema, but JCR is tailored for the JSON format's simplicity and prevalence in RESTful APIs, aligning with the industry shift towards web technologies in telecommunications.

Classification

Part ofJSON

Detected Changes Across Releases

from 3GPP Change Requests

Specific changes extracted from the „Change history“ tables of 3GPP specifications (1 CRs across 1 releases). Complements the general historical overview above with the evidence-based evolution of this function.

Studied in Rel-13, normative work from Rel-15.

Rel-15 1 change

In Release 15, JSON Content Rules (JCR) were newly introduced as a language for specifying the interchange of data in JSON, based on the IETF draft-newton-json-content-rules. This provided a standardized method for defining the structure and content of JSON bodies used in procedures over the St reference point, such as for traffic steering rule reporting and session state management. The specification detailed the use of specific JSON formats and fields, like `ts-rule-reports` and `notification-info`, for communication between network functions like the PCRF and TSSF.

  • Reference update: draft-newton-json-content-rules TS 29.155CR0024

Explore further

Broader topics and technologies where JCR plays a role.

Defining Specifications

3GPP specifications that define or reference JCR, with the latest known release. Sourced from the 3GPP document catalog — see methodology.

SpecificationTitleRelease
TS 29.155 vj00 REST-based St Reference Point Protocol Rel-19