ratchet: github.com/dailyburn/ratchet/data Index | Examples | Files

package data

import "github.com/dailyburn/ratchet/data"

Package data holds custom types and functions for passing JSON between ratchet stages.



Package Files


func ObjectsFromJSON Uses

func ObjectsFromJSON(d JSON) ([]map[string]interface{}, error)

ObjectsFromJSON is a helper for parsing JSON into a slice of generic maps/objects. The use-case is when a stage is expecting to receive either a JSON object or an array of JSON objects, and want to deal with it in a generic fashion.


d := []byte(`[{"One":1},

objects, _ := data.ObjectsFromJSON(d)

fmt.Println(fmt.Sprintf("%+v", objects))


[map[One:1] map[Two:2]]

func ParseJSON Uses

func ParseJSON(d JSON, v interface{}) error

ParseJSON is a simple wrapper for json.Unmarshal


d := []byte(`{"A":1,"B":2}`)
t := testStruct{}
data.ParseJSON(d, &t)

fmt.Println(fmt.Sprintf("%+v", t))


{A:1 B:2}

func ParseJSONSilent Uses

func ParseJSONSilent(d JSON, v interface{}) error

ParseJSONSilent won't log output when unmarshaling fails. It can be used in cases where failure is expected.

type JSON Uses

type JSON []byte

JSON is the data type that is passed along all data channels. Under the covers, JSON is simply a []byte containing JSON data.

func JSONFromHeaderAndRows Uses

func JSONFromHeaderAndRows(header []string, rows [][]interface{}) (JSON, error)

JSONFromHeaderAndRows takes the given header and rows of values, and turns it into a JSON array of objects.


header := []string{"A", "B", "C"}
rows := [][]interface{}{
    []interface{}{1, 2, 3},
    []interface{}{4, 5, 6},

d, _ := data.JSONFromHeaderAndRows(header, rows)

fmt.Println(fmt.Sprintf("%+v", string(d)))



func NewJSON Uses

func NewJSON(v interface{}) (JSON, error)

NewJSON is a simple wrapper for json.Marshal.


t := testStruct{A: 1, B: 2}

d, _ := data.NewJSON(t)




Package data imports 4 packages (graph) and is imported by 15 packages. Updated 2017-12-15. Refresh now. Tools for package owners.