README
¶
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
Documentation
¶
Overview ¶
Package jsn provides fast and no-allocation functions to extract values and modify JSON data
Index ¶
- func Clear(w *bytes.Buffer, v []byte) error
- func Filter(w *bytes.Buffer, b []byte, keys []string) error
- func Keys(b []byte) [][]byte
- func Replace(w *bytes.Buffer, b []byte, from, to []Field) error
- func Strip(b []byte, path [][]byte) []byte
- func Tree(v []byte) (map[string]json.RawMessage, bool, error)
- func Validate(s string) error
- func ValidateBytes(b []byte) error
- func Value(b []byte) []byte
- type Field
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func Clear ¶
Clear function wipes all scalar values from the json including those directly in an array
func Filter ¶
Filter function filters the JSON keeping only the provided keys and removing all others
func Replace ¶
Replace function replaces key-value pairs provided in the `from` argument with those in the `to` argument