Skip to content

Adding support to encoding of nested struct arrays #8

New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

Open
etxnija opened this issue Aug 24, 2015 · 3 comments
Open

Adding support to encoding of nested struct arrays #8

etxnija opened this issue Aug 24, 2015 · 3 comments

Comments

@etxnija
Copy link

etxnija commented Aug 24, 2015

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
@tamalsaha
Copy link

@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 .

@willnorris
Copy link
Collaborator

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: appscode#2

@kokizzu
Copy link

kokizzu commented Jun 9, 2022

@tamalsaha that one also give wrong for []string it gives something like this a%5B0%5D=1 instead of a[]=1

# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants