12345678910111213141516171819202122232425262728293031 |
- package testjson
- import (
- "encoding/json"
- "testing"
- "github.com/stretchr/testify/assert"
- )
- func TestMarshal(t *testing.T) {
- type A struct {
- A string `json:"a"`
- AA string `json:"aa"`
- }
- type B struct {
- A // can't be A A, or A `json...`
- B string `json:"b"`
- }
- type C struct {
- A `json:"a"`
- C string `json:"c"`
- }
- a := A{A: "a", AA: "aa"}
- b := B{A: a, B: "b"}
- c := C{A: a, C: "c"}
- bstr, _ := json.Marshal(b)
- cstr, _ := json.Marshal(c)
- assert.Equal(t, `{"a":"a","aa":"aa","b":"b"}`, string(bstr))
- assert.Equal(t, `{"a":{"a":"a","aa":"aa"},"c":"c"}`, string(cstr))
- }
|