1. 程式人生 > >JSON轉FormData

JSON轉FormData

讓我 容易 turn amp 格式化 直寫 tof style !=

寫項目以來一直寫請求都是直接丟個json數據,天真的以為所有的ajax就是傳json數據就好。直到遇到不配合的後端非讓我傳給他formData格式的數據。還一度怪人家不懂的變通,一點都不智能。其實還是自己見的太少,菜鳥遇到問題就是比較容易急躁呀。

貼個json轉formdata的代碼段吧。

function isObject(value) {
    return value === Object(value)
}

function isArray(value) {
    return Array.isArray(value)
}

function makeArrayKey(key) {
    
if (key.length > 2 && key.lastIndexOf(‘[]‘) === key.length - 2) { return key } else { return key + ‘[]‘ } } /** * 格式化 * @param {*} obj * @param {*} resultArr * @param {*} pre */ function objectToFormData(obj, resultArr, pre) { resultArr = resultArr || [] Object.keys(obj).forEach(
function (prop) { var key = pre ? (pre + ‘.‘ + prop) : prop if (isObject(obj[prop]) && !isArray(obj[prop])) { objectToFormData(obj[prop], resultArr, key) } else if (isArray(obj[prop])) { obj[prop].forEach(function (value, i) { var
arrayKey = key + ‘[‘ + i + ‘]‘; if (isObject(value)) { objectToFormData(value, resultArr, arrayKey) } else { resultArr.push(arrayKey + "=" + value) } }) } else { (obj[prop]!==""&&obj[prop]!==null) ? resultArr.push(key + "=" + obj[prop]) : null } }) return resultArr.join("&") }

JSON轉FormData