.. | ||
internal | ||
any_ltgo17.go | ||
CHANGELOG_zh-cn.md | ||
CHANGELOG.md | ||
codecov.yml | ||
compare.go | ||
conv.go | ||
errors.go | ||
get.go | ||
import_export.go | ||
insert_append_delete_must.go | ||
insert_append_delete.go | ||
iteration.go | ||
jsonvalue_internal.go | ||
jsonvalue.go | ||
LICENSE | ||
marshal.go | ||
marshaler_unmarshaler.go | ||
new.go | ||
option.go | ||
README.md | ||
set_must.go | ||
set.go | ||
sort.go | ||
unmarshal.go |
Jsonvalue - A Fast and Convenient Alternation of Go map[string]interface
Package jsonvalue is for handling unstructured JSON data or customizing JSON marshaling. It is far more faster and convenient than using interface{}
with encoding/json
.
Please refer to pkg site or wiki for detailed usage and examples.
Especially, please check for jsonvalue's programming scenarios.
Import
Use following statements to import jsonvalue:
import (
jsonvalue "github.com/Andrew-M-C/go.jsonvalue"
)
Quick Start
Sometimes we want to create a complex JSON object like:
{
"someObject": {
"someObject": {
"someObject": {
"message": "Hello, JSON!"
}
}
}
}
With jsonvalue
, It is quite simple to implement this:
v := jsonvalue.NewObject()
v.MustSet("Hello, JSON").At("someObject", "someObject", "someObject", "message")
fmt.Println(v.MustMarshalString())
// Output:
// {"someObject":{"someObject":{"someObject":{"message":"Hello, JSON!"}}}
Similarly, it is quite easy to create sub-arrays like:
[
{
"someArray": [
"Hello, JSON!"
]
}
]
v := jsonvalue.NewArray()
v.MustSet("Hello, JSON").At(0, "someObject", 0)
fmt.Println(v.MustMarshalString())
// Output:
// [{"someObject":["Hello, JSON"]}]
In opposite, to parse and read the first JSON above, you can use jsonvalue like this:
const raw = `{"someObject": {"someObject": {"someObject": {"message": "Hello, JSON!"}}}}`
s := jsonvalue.MustUnmarshalString(s).GetString("someObject", "someObject", "someObject", "message")
fmt.Println(s)
// Output:
// Hello, JSON!
However, it is quite complex and annoying in automatically creating array. I strongly suggest using SetArray()
to create the array first, then use Append()
or Insert()
to set array elements. Please refer go godoc or Wiki.