Skip to content

xaionaro-go/polyjson

Repository files navigation

polyjson

Go Reference Go Report Card Go Version

polyjson is just a JSON serde which can construct your objects for you.

For example:

    // register a type

	type myFancyStruct struct {
		A int
	}

	polyjson.RegisterType(myFancyStruct{})

	// serialize:

	b, err := polyjson.MarshalWithTypeIDs(map[string]any{"B": myFancyStruct{A: 1}}, polyjson.TypeRegistry())
	if err != nil {
		panic(err)
	}

	// deserialize:

	var cpy map[string]any
	err = polyjson.UnmarshalWithTypeIDs(b, &cpy, polyjson.TypeRegistry())
	if err != nil {
		panic(err)

	}

	if cpy["B"].(myFancyStruct).A != 1 {
		panic("unexpected value")
	}

As you can see in this example, it automatically constructed myFancyStruct inside cpy.

About

Polymorhic/type-tagged JSON with automatic object creation

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages