猿问

想要将嵌套对象转换为查询参数以附加到 url

我需要使用查询参数构造 url 请求,我有一个带有键和值的嵌套对象,如下所示


 "user": {

    "first_name": "Srini",

    "last_name": "Raman",

     "gender": "male",

     "dob": "1992-08-02",

     "address_attributes": {

      "city": "San Diego",

      "state": "CA",

      "zip": 92127,

      "country": "USA",

      "latitude": 37.257009,

      "longitude": -120.050767

    }

}



我需要获得一个查询参数,如


user[first_name]=Srini&user[last_name]=Raman&user[address_attributes][city]=San Diego&user[address_attributes][state]=CA


哔哔one
浏览 210回答 2
2回答

温温酱

let obj = {  user: {    first_name: 'Srini',    last_name: 'Raman',    gender: 'male',    dob: '1992-08-02',    address_attributes: {      city: 'San Diego',      state: 'CA',      zip: 92127,      country: 'USA',      latitude: 37.257009,      longitude: -120.050767    }  }};let getPairs = (obj, keys = []) =>  Object.entries(obj).reduce((pairs, [key, value]) => {    if (typeof value === 'object')      pairs.push(...getPairs(value, [...keys, key]));    else      pairs.push([[...keys, key], value]);    return pairs;  }, []);let x = getPairs(obj)  .map(([[key0, ...keysRest], value]) =>    `${key0}${keysRest.map(a => `[${a}]`).join('')}=${value}`)  .join('&');console.log(x);
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答