将 json 数组转换为查询字符串给出 null

Converting json array to query string gives null

我想要实现的是将 json 对象作为查询字符串发送到 API.

我的 json 对象是:

{
  "Name":"Dlsajdsa",
  "ImageUrls":["/Images/Facility/8353/85e26a18-4366-4412-b37a-72d94f2ccda5.jpg"]
}

我想将其转换为 ?Name=&ImageUrls=

但是,当使用 $.param(json) 时,我得到以下信息:

?Name=Dlsajdsa&ImageUrls%5B%5D=%2FImages%2FFacility%2F8353%2F85e26a18-4366-4412-b37a-72d94f2ccda5.jpg

从 API 的角度来看,ImageUrls 数组为空。

我在这里错过了什么?

查询参数称为 ImageUrls%5B%5D,这意味着 ImageUrls[],而不是您期望的 ImageUrls。

你可以试试$.param(json,true)

根据 jQuery.param 的文档,我认为这是您要使用的代码片段:

var json = {
  "Name":"Dlsajdsa",
  "ImageUrls":["/Images/Facility/8353/85e26a18-4366-4412-b37a-72d94f2ccda5.jpg"]
};

var recursiveDecoded = decodeURIComponent($.param(json));

// "Name=Dlsajdsa&ImageUrls[]=/Images/Facility/8353/85e26a18-4366-4412-b37a-72d94f2ccda5.jpg"