为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

呼唤远方 2019-05-03 11:19:19
嗨我需要使用查询参数构造到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
查看完整描述

2 回答

?
慕后森

TA贡献1802条经验 获得超5个赞

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);


查看完整回答
反对 回复 2019-05-17
  • 2 回答
  • 0 关注
  • 756 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号