wardbradt / jsonbldr

Fast low-level JSON serializer for golang.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

jsonbldr

Fast low-level JSON serializer for golang.

Examples

String Map

sampleMap := map[string]string{
   "a": "apple",
   "b": "banana",
   "c": "car",
   "d": "dog",
}
builder := jsonbldr.New()
// Setting the second parameter, omitempty, to false causes empty values to be ignored.
// Setting the third parameter, rawValues, to false causes each value to be wrapped in 
//   double quotes to make it a valid string.
builder.AddPairs(sampleMap, false, false)
builder.CloseObject()
log.Println(string(builder.Bytes()))

Output:

{"a":"apple","b":"banana","c":"car","d":"dog"}

Array as a Value

sampleSlice := []string{"apple", "banana", "clementine", "durian"}
// Setting the third parameter, omitempty, to true causes empty values to be ignored.
// Setting the fourth parameter, rawValues, to false causes each value to be wrapped in double quotes
//   to make it a valid string.
builder.AddArray("fruits", sampleSlice, true, false)
builder.CloseObject()
log.Println(string(builder.Bytes()))

Output:

 {"fruits":["apple","banana","clementine","durian"]}

Reset an ObjectBuilder for reuse

builder := jsonbldr.New()
builder.AddStringPair("lemon", "yellow")
builder.CloseObject()
log.Println(string(builder.Bytes())) // Output: {"lemon":"yellow"}
builder.Reset()
log.Println(len(builder.Bytes())) // Outputs 0

About

Fast low-level JSON serializer for golang.

License:MIT License


Languages

Language:Go 100.0%