如何在Postman中使用Form-data发送Jsons数组

c86crjj0  于 2023-10-18  发布在  Postman
关注(0)|答案(4)|浏览(347)

我尝试使用一个使用以下Joi验证的API:

Joi.object({
    files: Joi.array().items(Joi.object({
        fileId: Joi.string().uuid().required(),
    })),
    folders: Joi.array().items(Joi.object({
        folderId: Joi.string().uuid().required(),
    }))
})

joi验证还要求我将其作为FormData发送。我已经尝试了几种不同的方法,但无论我尝试什么,我都只能发送一个字符串数组,如下所示:
files:[“fileId:f28019d7-9268-4013-bacb-67ed96eb095f”,“fileId:51e99e3d-755a-4530-9eed-f08d20cbfe8b”]

那我怎么用 Postman 寄呢?

a14dhokn

a14dhokn1#

不要使用form,尝试使用下面的原始字段,并选择类型为json

zzzyeukh

zzzyeukh2#

你可以像这样在body中发送数组:

agxfikkp

agxfikkp3#

问题是你试图发送字符串而不是对象:
files:Joi.array().items(Joi.object({ fileId:Joi.string().uuid().required(),}))
在这里,您尝试将fileId设置为对象中的键(在files数组中)。所以你想要的是[{ fileId: "xyz" }]
要实现这一点,你可以简单地字符串化你的数组数据。然后发送表单数据体。

let arr = [{ fileId: "xyz" }];
JSON.stringify(arr); // outputs in console -> "[{"fileId":"xyz"}]"

在Postman中,您可以将数组发送为:

files:[{"fileId":"xyz"},{"fileId":"abc"}]

(Do这是通过使用批量上传,以便没有额外的空间等问题)

webghufk

webghufk4#

您可以使用Postman在“批量编辑”中给予以下值:

files[1]:f28019d7-9268-4013-bacb-67ed96eb095f
files[2]:51e99e3d-755a-4530-9eed-f08d20cbfe8b

相关问题