40 lines
1.0 KiB
Markdown
40 lines
1.0 KiB
Markdown
# JSN - Fast low allocation JSON library
|
|
## Design
|
|
|
|
This libary is designed as a set of seperate functions to extract data and mutate
|
|
JSON. All functions are focused on keeping allocations to a minimum and be as fast
|
|
as possible. The functions don't validate the JSON a seperate `Validate` function
|
|
does that.
|
|
|
|
The JSON parsing algo processes each object `{}` or array `[]` in a bottom up way
|
|
where once the end of the array or object is found only then the keys within it are
|
|
parsed from the top down.
|
|
|
|
```
|
|
{"id":1,"posts": [{"title":"PT1-1","description":"PD1-1"}], "full_name":"FN1","email":"E1" }
|
|
|
|
id: 1
|
|
|
|
posts: [{"title":"PT1-1","description":"PD1-1"}]
|
|
|
|
[{"title":"PT1-1","description":"PD1-1"}]
|
|
|
|
{"title":"PT1-1","description":"PD1-1"}
|
|
|
|
title: "PT1-1"
|
|
|
|
description: "PD1-1
|
|
|
|
full_name: "FN1"
|
|
|
|
email: "E1"
|
|
```
|
|
|
|
## Functions
|
|
|
|
- Strip: Strip a path from the root to a child node and return the rest
|
|
- Replace: Replace values by key
|
|
- Get: Get all keys
|
|
- Filter: Extract specific keys from an object
|
|
- Tree: Fetch unique keys from an array or object
|