Documentation ¶
Index ¶
Examples ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func DecodeJsonData ¶ added in v0.3.0
func DecodeJsonData(eventTypeName string, rawJsonData io.Reader, eventTypeIdentifier rangedb.EventTypeIdentifier) (interface{}, error)
DecodeJsonData decodes raw json into a struct or interface{}.
Event data will be parsed into a struct if supplied by getEventType.
func New ¶
func New() *jsonSerializer
New constructs a jsonSerializer.
Example (DeserializeWithBoundEvent) ¶
package main import ( "fmt" "github.com/inklabs/rangedb/provider/jsonrecordserializer" "github.com/inklabs/rangedb/rangedbtest" ) func main() { // Given serializer := jsonrecordserializer.New() serializer.Bind(rangedbtest.ThingWasDone{}) json := `{"aggregateType":"thing","aggregateID":"60f01cc527844cde9953c998a2c077a7","globalSequenceNumber":100,"streamSequenceNumber":2,"insertTimestamp":1576892379,"eventID":"","eventType":"ThingWasDone","data":{"id":"A","number":1},"metadata":null}` // When record, _ := serializer.Deserialize([]byte(json)) fmt.Printf("%#v\n", record.Data) }
Output: &rangedbtest.ThingWasDone{ID:"A", Number:1}
Example (DeserializeWithUnboundEvent) ¶
package main import ( "fmt" "github.com/inklabs/rangedb/provider/jsonrecordserializer" ) func main() { // Given serializer := jsonrecordserializer.New() json := `{"aggregateType":"thing","aggregateID":"60f01cc527844cde9953c998a2c077a7","globalSequenceNumber":100,"streamSequenceNumber":2,"insertTimestamp":1576892379,"eventID":"","eventType":"ThingWasDone","data":{"id":"A","number":1},"metadata":null}` // When record, _ := serializer.Deserialize([]byte(json)) fmt.Printf("%#v\n", record.Data) }
Output: map[string]interface {}{"id":"A", "number":"1"}
Example (Serialize) ¶
package main import ( "fmt" "github.com/inklabs/rangedb" "github.com/inklabs/rangedb/provider/jsonrecordserializer" "github.com/inklabs/rangedb/rangedbtest" ) func main() { // Given serializer := jsonrecordserializer.New() event := &rangedbtest.ThingWasDone{ ID: "A", Number: 1, } record := &rangedb.Record{ AggregateType: "thing", AggregateID: "60f01cc527844cde9953c998a2c077a7", GlobalSequenceNumber: 100, StreamSequenceNumber: 2, EventType: "ThingWasDone", InsertTimestamp: 1576892379, Data: event, Metadata: nil, } // When output, _ := serializer.Serialize(record) fmt.Println(string(output)) }
Output: {"aggregateType":"thing","aggregateID":"60f01cc527844cde9953c998a2c077a7","globalSequenceNumber":100,"streamSequenceNumber":2,"insertTimestamp":1576892379,"eventID":"","eventType":"ThingWasDone","data":{"id":"A","number":1},"metadata":null}
func UnmarshalRecord ¶
func UnmarshalRecord(decoder *json.Decoder, eventTypeIdentifier rangedb.EventTypeIdentifier) (*rangedb.Record, error)
UnmarshalRecord decodes a Record using the supplied JSON decoder.
Event data will be parsed into a struct if supplied by getEventType.
Types ¶
This section is empty.
Click to show internal directories.
Click to hide internal directories.