mirror of
https://github.com/kubernetes-sigs/kustomize.git
synced 2026-06-11 17:12:51 +00:00
Merge pull request #2432 from tamalsaha/fix-marshal
Fix MarshalJSON of array
This commit is contained in:
@@ -688,11 +688,18 @@ func (rn *RNode) MarshalJSON() ([]byte, error) {
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if rn.YNode().Kind == SequenceNode {
|
||||||
|
var a []interface{}
|
||||||
|
if err := Unmarshal([]byte(s), &a); err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return json.Marshal(a)
|
||||||
|
}
|
||||||
|
|
||||||
m := map[string]interface{}{}
|
m := map[string]interface{}{}
|
||||||
if err := Unmarshal([]byte(s), &m); err != nil {
|
if err := Unmarshal([]byte(s), &m); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
return json.Marshal(m)
|
return json.Marshal(m)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -105,9 +105,31 @@ metadata:
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestRNode_MarshalJSON(t *testing.T) {
|
func TestRNode_MarshalJSON(t *testing.T) {
|
||||||
instance, err := Parse(`
|
tests := []struct {
|
||||||
|
name string
|
||||||
|
ydoc string
|
||||||
|
want string
|
||||||
|
}{
|
||||||
|
{
|
||||||
|
name: "object",
|
||||||
|
ydoc: `
|
||||||
hello: world
|
hello: world
|
||||||
`)
|
`,
|
||||||
|
want: `{"hello":"world"}`,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "array",
|
||||||
|
ydoc: `
|
||||||
|
- name: s1
|
||||||
|
- name: s2
|
||||||
|
`,
|
||||||
|
want: `[{"name":"s1"},{"name":"s2"}]`,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
for idx := range tests {
|
||||||
|
tt := tests[idx]
|
||||||
|
t.Run(tt.name, func(t *testing.T) {
|
||||||
|
instance, err := Parse(tt.ydoc)
|
||||||
if !assert.NoError(t, err) {
|
if !assert.NoError(t, err) {
|
||||||
t.FailNow()
|
t.FailNow()
|
||||||
}
|
}
|
||||||
@@ -117,9 +139,10 @@ hello: world
|
|||||||
t.FailNow()
|
t.FailNow()
|
||||||
}
|
}
|
||||||
|
|
||||||
expected := `{"hello":"world"}`
|
|
||||||
if !assert.Equal(t,
|
if !assert.Equal(t,
|
||||||
strings.TrimSpace(expected), strings.TrimSpace(string(actual))) {
|
strings.TrimSpace(tt.want), strings.TrimSpace(string(actual))) {
|
||||||
t.FailNow()
|
t.FailNow()
|
||||||
}
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user