RichJSON is a powerful extension of the standard JSON format, meticulously designed to make your data highly modular, reusable, and significantly more compressed. By eliminating redundancy through intelligent referencing, it bridges the gap between human-readable configuration and machine-efficient data structures.
📦 Get Started (You can find the Wiki here.)
npm install @rjson/parser
TODOs:
RichJSON is optimized to store JSON data in a space-efficient manner. While standard JSON often suffers from "data bloat" due to repeated objects, RichJSON allows you to define data once and reference it everywhere. Read more about in the documentation.
Note
This library is optimized for compact storage and network bandwidth savings. It is designed for scenarios where reducing IO and footprint is more critical than raw writing or querying throughput.
RichJSON maintains 100% compatibility with standard JSON parsers while introducing a sophisticated layer of logic:
- Zero-Violation Format: Valid JSON syntax that any standard editor can read.
- Smart Referencing (
$ref): Point to objects, files, or environment variables to avoid duplication. - Multi-Inheritance: Build complex objects by inheriting from existing JSON structures.
- Nested Interpolation: Dynamic string resolution within your data fields.
- Custom Commands: Extend the logic with your own modules for specific business use cases.
🛠️ How It Works (read more...)
RichJSON transforms static files into dynamic structures. Here is the "magic" in action:
Create a standard .json file and start using RichJSON commands.
{
"data_template": {
"data0": "value",
"data1": "value",
"data2": "value"
},
"applied_reference": "$ref:data_template"
}Read the file using the readRichJsonFile function to expand the references.
var obj = readRichJsonFile(<filepath>);The output is a fully resolved, standard JSON object where all references are hydrated:
{
"data_template": {
"data0": "value",
"data1": "value",
"data2": "value"
},
"applied_reference": {
"data0": "value",
"data1": "value",
"data2": "value"
}
}