【问题标题】:Pass array of objects in query string node.js在查询字符串 node.js 中传递对象数组
【发布时间】:2015-01-18 02:44:28
【问题描述】:

如果我想让 Node.js 查询解析器解析一个数组,我可以发送这个:

'?or=foo&or=bar' // gets me { or: ['foo', 'bar'] }

如果我想要一个对象,我可以这样做:

'?or[foo]=bar' // gets me { or: {foo: 'bar'}}

但是我如何获得一个对象数组呢?我想要这个输出:

{ or: [{foo: 'bar'}, {bar: 'baz'}]}

【问题讨论】:

  • 将其转换为 JSON 并以 URL 编码格式发送
  • 不起作用。我只是搞砸了: { '{"or":': { '{"foo":"bar"},{"bar":"baz"}]': '' } }

标签: node.js url query-string


【解决方案1】:

使用qs 模块,如果你使用这种格式,你可以得到你正在寻找的对象:

or[0][foo]=bar&or[1][bar]=baz

【讨论】:

  • 哇,实际上没有模块也能正常工作。谢谢!
【解决方案2】:

您可以使用选项 allowDots。

const stringParams = qs.stringify(params, {allowDots:true});
// myArray[0].name=MeWhit
qs.parse(stringParams , {allowDots: true});
// [{ name: MeWhit}]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-04-11
    • 1970-01-01
    • 2016-02-23
    • 2021-02-04
    • 2017-10-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多