如何从编码的字符串中获取json格式

时间:2017-02-12 23:42:19

标签: javascript json urlencode

我在请求正文中收到以下字符串:

params%5Bparam1%5D=543543&params%5Bparam2%5D=fdasghdfghdf&params%5Btest%5D=yes

如何将此转换为普通JSON?

这是从API网关解析为Lambda代理的请求体。

1 个答案:

答案 0 :(得分:1)

如果你想在JavaScript中快速而肮脏(从this related answer修改)

let params = "params%5Bparam1%5D=543543&params%5Bparam2%5D=fdasghdfghdf&params%5Btest%5D=yes";

let result = JSON.parse('{"' +
  decodeURIComponent(params)
    .replace(/"/g, '\\"')
    .replace(/&/g, '","')
    .replace(/params\[/g, '')
    .replace(/\]=/g, '=')
    .replace(/=/g, '":"') +
  '"}');

console.log(result);