super-graph/jsn
2019-09-20 00:19:11 -04:00
..
corpus Add database seeding capability 2019-09-20 00:19:11 -04:00
filter.go Add tracing for API stitching 2019-05-13 00:05:08 -04:00
fuzz.go Add database seeding capability 2019-09-20 00:19:11 -04:00
get.go Add insert mutation with bulk insert 2019-09-05 00:09:56 -04:00
json_test.go Add insert mutation with bulk insert 2019-09-05 00:09:56 -04:00
keys.go Add insert mutation with bulk insert 2019-09-05 00:09:56 -04:00
README.md Add insert mutation with bulk insert 2019-09-05 00:09:56 -04:00
replace.go Add tracing for API stitching 2019-05-13 00:05:08 -04:00
stack.go Add insert mutation with bulk insert 2019-09-05 00:09:56 -04:00
strip.go Add tracing for API stitching 2019-05-13 00:05:08 -04:00
tree.go Add insert mutation with bulk insert 2019-09-05 00:09:56 -04:00
validate.go Add validation for remote JSON 2019-06-04 10:54:51 -04: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