【问题标题】:Nested parameters on GET requestGET 请求中的嵌套参数
【发布时间】:2020-05-25 09:45:36
【问题描述】:

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

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

这是我使用 Postman 得到的当前解决方案

这是当前 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】:

    如果你有 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"
    

    【讨论】:

    • 不。这是解释:Parameters: {"\"main_key"=>{"other_key"=>{"main_array"=>{"0"=>{"name"=>"Bob"}}}}, "main_key"=>{"other_key"=>{"main_array"=>{"0"=>{"nickname"=>"bobby"}, "1"=>{"name"=>"Tom", "nickname"=>"Tommy\""}}}}, "default"=>{"format"=>:json}}
    猜你喜欢
    • 2011-12-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多