javascript - 使用 ramda 生成查询字符串

标签 javascript json ramda.js

我有一个代表过滤器数组的对象。数组中的任何对象都有 idvalue。现在我想从这个数组生成查询字符串:

{ filtered: '[{"id":"tags","value":["soap"]}]',
  limit: '10',
  offset: '0',
  sorted: '[]' }

输出应如下所示:

/item?filtered=%5B%7B%22id%22%3A%22tags%22%2C%22value%22%3A%5B%22soap%22%5D%7D%5D&limit=10&offset=0&sorted=%5B%5D

现在如何使用 ramda 生成这样的嵌套查询?

最佳答案

就我个人而言,我只会使用现有的库(有很多,在 npm 中搜索查询字符串)。如果您自己使用特定的 ramda 来完成:

const qs = R.compose(
  s => `?${s}`, // Prepend a ?
  R.join('&'), // Join each segment of the query with '&'
  R.map(R.join('=')), // Join the key-value pairs with '='
  R.map(R.map(encodeURIComponent)), // encode keys and values
  R.toPairs, // convert the object to pairs like `['limit', 5]`
)(input)

关于javascript - 使用 ramda 生成查询字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46752248/

相关文章:

javascript - 可能 undefined variable

javascript - 在 JavaScript 中绑定(bind)/应用构造函数

javascript - Typescript 中的数组类到数组数组

json - 使用 golang 返回一个空数组而不是 null 用于使用 gin 返回的 json

javascript - 比较 ramda.js 中的部分对象

javascript - 仅当对象存在时使用 Ramda 调用对象的嵌套方法

javascript - 为什么 `/\:/u` 会抛出 “invalid escape” 错误?

javascript - 有什么方法可以让javascript循环休眠吗?

java - 将 Gson 与路径一起使用

json - 如何使用Code Igniter REST_Controller定义内容类型