GET请求中的嵌套参数

问题描述 投票:0回答:1

今天的问题:如何对URL进行编码以能够在GET请求上传递复杂的数据?

# data to pass
{
    "main_key": {
        "other_key": {
            "main_array": [{
                    "name": "Bob",
                    "nickname": "bobby"
                },
                {
                    "name": "Tom",
                    "nickname": "Tommy"
                }
            ]
        }
    }
}

这里是邮递员提供的当前解决方案

postman parameters这是这种查询的当前Rails解释,这是正确的。

# Rails server side
Parameters: {"main_key"=>{"other_key"=>{"main_array"=>[{"name"=>"Bob", "nickname"=>"bobby"}, {"name"=>"Tom", "nickname"=>"tommy"}]}}, "default"=>{"format"=>:json}}

有人可以用这种复杂的嵌套数组对象来实现请求的更好方法吗?

我得到的另一个解决方案是直接将JSON作为查询参数的值传递,然后从控制器解析它。

**编辑:**我可以在请求的body上传递此json,但由于它是GET方法,因此不符合XHR要求。

ruby-on-rails xmlhttprequest url-parameters
1个回答
0
投票

如果有jquery,则可以使用它的.param()方法。

let myParams = {
    "main_key": {
        "other_key": {
            "main_array": [{
                    "name": "Bob",
                    "nickname": "bobby"
                },
                {
                    "name": "Tom",
                    "nickname": "Tommy"
                }
            ]
        }
    }
}

console.log($.param(myParams));

这将为您提供所需的字符串。

"main_key%5Bother_key%5D%5Bmain_array%5D%5B0%5D%5Bname%5D=Bob&main_key%5Bother_key%5D%5Bmain_array%5D%5B0%5D%5Bnickname%5D=bobby&main_key%5Bother_key%5D%5Bmain_array%5D%5B1%5D%5Bname%5D=Tom&main_key%5Bother_key%5D%5Bmain_array%5D%5B1%5D%5Bnickname%5D=Tommy"
© www.soinside.com 2019 - 2024. All rights reserved.