go-querystring
go-querystring copied to clipboard
Adding support to encoding of nested struct arrays
I plan to fix the issue described below for encoding nested struct arrays.
Currently this structure
type Nested struct {
A string `url:"theA,omitempty"`
B string `url:"theB,omitempty"`
}
type NestedArr []Nested
na := struct {
A NestedArr `url:"arr"`
B Nested `url:"nested"`
}{
A: NestedArr{Nested{
A: "aa",
B: "bb",
}, Nested{
A: "aaa",
B: "bbb"}},
B: Nested{
A: "zz",
B: "xx",
},
}
encode to
arr={aa bb}&arr={aaa bbb}&nested[theA]=zz&nested[theB]=xx
To be consistent with the Ruby style parsing the result should look like this
arr[0][theA]=aa&arr[0][theB]=bb&arr[1][theA]=aaa&arr[1][theB]=bbb&nested[theA]=zz&nested[theB]=xx
@etxnija , this is a very old bug. We needed similar ruby like encoding. We have addressed this in our fork https://github.com/appscode/go-querystring .
I'll leave this issue open for anyone that still needs this and wants to implement.
Looks like @tamalsaha's initial implementation was pretty simple: https://github.com/appscode/go-querystring/pull/2
@tamalsaha that one also give wrong for []string
it gives something like this a%5B0%5D=1
instead of a[]=1