super-graph/jsn
2020-02-24 02:00:11 +05:30
..
corpus Add database seeding capability 2019-09-20 00:19:11 -04:00
bench.0 Fix various json parsing and sql generation bugs 2020-01-19 03:12:51 -05:00
filter.go Fix corrupt json bug in jsn package 2020-02-24 02:00:11 +05:30
fuzz_test.go Move license from MIT to Apache 2.0. Add Makefile 2019-11-28 01:25:46 -05:00
fuzz.go Add RBAC option to disable functions eg. count 2019-10-27 01:52:48 -04:00
get.go Fix corrupt json bug in jsn package 2020-02-24 02:00:11 +05:30
json_test.go Fix corrupt json bug in jsn package 2020-02-24 02:00:11 +05:30
keys.go Fix corrupt json bug in jsn package 2020-02-24 02:00:11 +05:30
README.md Add insert mutation with bulk insert 2019-09-05 00:09:56 -04:00
replace.go Fix corrupt json bug in jsn package 2020-02-24 02:00:11 +05:30
stack.go Add insert mutation with bulk insert 2019-09-05 00:09:56 -04:00
strip.go Fix corrupt json bug in jsn package 2020-02-24 02:00:11 +05:30
test.go Add RBAC option to disable functions eg. count 2019-10-27 01:52:48 -04:00
test.json Fix corrupt json bug in jsn package 2020-02-24 02:00:11 +05:30
tree.go Add nested mutations 2019-12-25 01:24:30 -05:00
validate.go Move license from MIT to Apache 2.0. Add Makefile 2019-11-28 01:25:46 -05:00

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