我JSON用来向服务器端发送数据。如果让我来发送文件,我转换的文件base64,我把它通过JSON。最近我遇到了FormData。MDN说
FormData 对象允许您编译一组键/值对以使用 XMLHttpRequest 发送。它主要用于发送表单数据,但可以独立于表单使用以传输密钥数据。
(上面的定义让我想起了JSON自己)
FormData可用于直接发送文件,无需转换为base64.
所以我的问题是“使用Formdataover是否还有其他优势JSON”
json 相对于 formdata 的主要好处是字段嵌套!
使用 json,您可以根据需要嵌套字段(不知道是否有限制),但是使用 formdata,您必须首先手动对字段进行字符串化,然后将它们作为字符串添加到拥有该嵌套对象的键中。
以编程方式
var myObject = {1: 1, 2: {3: 4}}
Run Code Online (Sandbox Code Playgroud)
使用 formdata,您必须先将对象字符串化,{3: 4}然后再将其添加到 formdata,否则,它将作为['object Object']
我的建议:
if (action is 'sending files') {
// use formdata
} else {
// use json
}
Run Code Online (Sandbox Code Playgroud)
专业提示:不要以 Base64 形式发送文件,它弊大于利!