repositorypackage
0.0.0-20211221071957-84b5b690c8a0
Repository: https://github.com/json-iterator/tinygo.git
Documentation: pkg.go.dev
# Packages
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
# README
make json.Unmarshal
work in tinygo
type NamedArray = []string
type RefNamedArray struct {
Value NamedArray
}
import "encoding/json"
var val1 RefNamedArray
var val2 NamedArray
json.Unmarshal([]byte(`{ "Value": ["hello","world"] }`), &val1)
json.Unmarshal([]byte(`["hello","world"]`), &val2)
The code above does not work in tinygo, due to incomplete runtime reflection support. To fix this, we use code generation instead of runtime reflection to implement json.Unmarshal
//go:generate go run github.com/json-iterator/tinygo/gen
type NamedArray = []string
//go:generate go run github.com/json-iterator/tinygo/gen
type RefNamedArray struct {
Value NamedArray
}
import "github.com/json-iterator/tinygo"
// list all the types you need to unmarshal here
json := jsoniter.CreateJsonAdapter(RefNamedArray_json{}, NamedArray_json{})
var val1 RefNamedArray
var val2 NamedArray
json.Unmarshal([]byte(`{ "Value": ["hello","world"] }`), &val1)
json.Unmarshal([]byte(`["hello","world"]`), &val2)
run go generate
command to generate RefNamedArray_json and NamedArray_json.