diff options
author | Wim <wim@42.be> | 2019-12-26 23:12:28 +0100 |
---|---|---|
committer | Wim <wim@42.be> | 2020-03-01 22:19:33 +0100 |
commit | 795a8705c3fdc5bf55e83d382e7d3ff233896a0b (patch) | |
tree | 46ac43e487102de7ea21a823a7a7902ae9493f88 /vendor/github.com/yaegashi/msgraph.go/jsonx/README.md | |
parent | 3af0dc3b3a5bfaffe37770c437427f1e99402405 (diff) | |
download | matterbridge-msglm-795a8705c3fdc5bf55e83d382e7d3ff233896a0b.tar.gz matterbridge-msglm-795a8705c3fdc5bf55e83d382e7d3ff233896a0b.tar.bz2 matterbridge-msglm-795a8705c3fdc5bf55e83d382e7d3ff233896a0b.zip |
Add initial Microsoft Teams support
Documentation on https://github.com/42wim/matterbridge/wiki/MS-Teams-setup
Diffstat (limited to 'vendor/github.com/yaegashi/msgraph.go/jsonx/README.md')
-rw-r--r-- | vendor/github.com/yaegashi/msgraph.go/jsonx/README.md | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/vendor/github.com/yaegashi/msgraph.go/jsonx/README.md b/vendor/github.com/yaegashi/msgraph.go/jsonx/README.md new file mode 100644 index 00000000..575ce781 --- /dev/null +++ b/vendor/github.com/yaegashi/msgraph.go/jsonx/README.md @@ -0,0 +1,55 @@ +# jsonx + +It's modified version of [encoding/json](https://golang.org/pkg/encoding/json/) +which enables extra map field (with `jsonx:"true"` tag) to catch all other fields not declared in the struct. + +`jsonx` is a code name for internal use +and not related to [JSONx](https://tools.ietf.org/html/draft-rsalz-jsonx-00). + +Example ([Run on playgroud](https://play.golang.org/p/TZi0JeHYG69)) +```go +package main + +import ( + "encoding/json" + "fmt" + + "github.com/yaegashi/msgraph.go/jsonx" +) + +type Extra struct { + X string + Y int + Extra map[string]interface{} `json:"-" jsonx:"true"` +} + +func main() { + var x1, x2 Extra + b := []byte(`{"X":"123","Y":123,"A":"123","B":123}`) + fmt.Printf("\nUnmarshal input: %s\n", string(b)) + json.Unmarshal(b, &x1) + fmt.Printf(" json.Unmarshal: %#v\n", x1) + jsonx.Unmarshal(b, &x2) + fmt.Printf("jsonx.Unmarshal: %#v\n", x2) + + x := Extra{X: "456", Y: 456, Extra: map[string]interface{}{"A": "456", "B": 456}} + fmt.Printf("\nMarshal input: %#v\n", x) + b1, _ := json.Marshal(x) + fmt.Printf(" json.Marshal: %s\n", string(b1)) + b2, _ := jsonx.Marshal(x) + fmt.Printf("jsonx.Marshal: %s\n", string(b2)) +} +``` + +Result + +```text +Unmarshal input: {"X":"123","Y":123,"A":"123","B":123} + json.Unmarshal: main.Extra{X:"123", Y:123, Extra:map[string]interface {}(nil)} +jsonx.Unmarshal: main.Extra{X:"123", Y:123, Extra:map[string]interface {}{"A":"123", "B":123}} + +Marshal input: main.Extra{X:"456", Y:456, Extra:map[string]interface {}{"A":"456", "B":456}} + json.Marshal: {"X":"456","Y":456} +jsonx.Marshal: {"X":"456","Y":456,"A":"456","B":456} +``` + |