README ¶
Fast JSON encoding
See this blog post for the rational and benchmarks.
tldr; when writing an array of objects this library can speed things up. Especially as the number of objects in the array and the number of columns in the object grow.
Writing a whole array at once
If you have a whole large array at once, there is a helper function for writing it all out at once.
package main
import (
"os"
"github.com/multiprocessio/go-json"
)
func main() {
// Uses stdlib's encoding/json
data := []interface{}{
map[string]interface{}{"a": 1, "b": 2},
map[string]interface{}{"a": 5, "c": 3, "d": "xyz"},
}
out := os.Stdout // Can be any io.Writer
err := jsonutil.Encode(out, data)
if err != nil {
panic(err)
}
}
Streaming encoding an array
If you are streaming data, there is also support for stream encoding with this library:
package main
import (
"os"
"github.com/multiprocessio/go-json"
)
func main() {
// Uses stdlib's encoding/json
data := []interface{}{
map[string]interface{}{"a": 1, "b": 2},
map[string]interface{}{"a": 5, "c": 3, "d": "xyz"},
}
out := os.Stdout // Can be any io.Writer
encoder := jsonutil.NewStreamEncoder(out, true)
for _, row := range data {
err := encoder.EncodeRow(row)
if err != nil{
panic(err)
}
}
err := encoder.Close()
if err != nil {
panic(err)
}
}
Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func EncodeStdlib ¶
Types ¶
type StreamEncoder ¶
type StreamEncoder struct {
// contains filtered or unexported fields
}
func NewGenericStreamEncoder ¶
func NewGenericStreamEncoder(w io.Writer, marshalFn Marshaler, array bool) *StreamEncoder
func NewStdlibStreamEncoder ¶
func NewStdlibStreamEncoder(out io.Writer, array bool) *StreamEncoder
func NewStreamEncoder ¶
func NewStreamEncoder(out io.Writer, array bool) *StreamEncoder
func (*StreamEncoder) Close ¶
func (sw *StreamEncoder) Close() error
func (*StreamEncoder) EncodeRow ¶
func (sw *StreamEncoder) EncodeRow(row interface{}) error
Click to show internal directories.
Click to hide internal directories.