0

当发送一个带有表单值的 HTTP 请求时x-www-form-url-encoded,它变成一个由字符分隔的简单密钥对字符串&

所以发送这样的表格:

foo: bar
apple: red

将产生以下字符串:

foo=bar&apple=red

通常在发送数组时,我们使用相同的密钥,如下所示:

colors: [red, blue, green]

成为

colors=red&colors=blue&colors=green

但是,当 API 需要使用此主体和此类数据的请求中的数组时,是否有一种标准方法可以声明属性是只有一个元素或 0 个元素的数组?

像这样:

foo: [bar]

或者

thingsJonSnowKnows: []
4

2 回答 2

0

这在一定程度上取决于您对标准的定义,但有一种非常常见的格式,它被很多不同的框架和语言支持。创建一个包含 1 个项目的数组如下所示:

foo[]=bar

我认为不可能表达一个空数组,但你可以用它创建对象。

我相信这种语法起源于 PHP,但我在 Java 和 Javascript 框架中也看到过这种情况。我在 PHP 文档中找不到描述这种确切格式的明确规范。

于 2020-08-21T16:48:47.613 回答
0

我建议添加一个单独的键值对来存储大小。另请参阅如何在查询字符串中传递数组? 一个可能的解决方案是数组的逗号分隔值

于 2020-08-21T16:28:57.507 回答