【问题标题】:Properly decode Angular 1.4 $httpParamSerializer querystring?正确解码 Angular 1.4 $httpParamSerializer 查询字符串?
【发布时间】:2015-08-12 11:38:54
【问题描述】:

这是我要序列化的对象:

{"cars": [
   {"make":"volkswagen","model":"golf"},
   {"make":"volkswagen","model":"polo"},
   {"make":"audi","model":"a3"},
   {"make":"bmw","model":"1-series"},
   {"make":"renault","model":"espace"} 
]}

之前,我使用 jQuery $.param() 函数和 qs 库在 node.js 上对其进行解码。一切正常,我不需要自己解析任何东西。

现在,我决定使用新的 Angular 1.4 服务 $httpParamSerializer 来摆脱 jQuery。解码后,我得到的是strings,而不是数组中的objects

 '{"make":"volkswagen","model":"golf"}'

如何正确解码使用$httpParamSerializer 服务创建的查询字符串,而不对数组中的每个对象调用JSON.parse

这里是$.param查询字符串:

cars%5B0%5D%5Bmake%5D=volkswagen&cars%5B0%5D%5Bmodel%5D=golf&cars%5B1%5D%5Bmake%5D=volkswagen&cars%5B1%5D%5Bmodel%5D=polo&cars%5B2%5D%5Bmake%5D=audi&cars%5B2%5D%5Bmodel%5D=a3&cars%5B3%5D%5Bmake%5D=bmw&cars%5B3%5D%5Bmodel%5D=1-series&cars%5B4%5D%5Bmake%5D=renault&cars%5B4%5D%5Bmodel%5D=espace&demo%5Bsome%5D=bar

这里是$httpParamSerializer查询字符串:

cars=%7B%22make%22:%22volkswagen%22,%22model%22:%22golf%22%7D&cars=%7B%22make%22:%22volkswagen%22,%22model%22:%22polo%22%7D&cars=%7B%22make%22:%22audi%22,%22model%22:%22a3%22%7D&cars=%7B%22make%22:%22bmw%22,%22model%22:%221-series%22%7D&cars=%7B%22make%22:%22renault%22,%22model%22:%22espace%22%7D&demo=%7B%22some%22:%22bar%22%7D`

【问题讨论】:

    标签: angularjs node.js query-string


    【解决方案1】:

    还有 $HttpParamSerializerJQLikeProvider 像 jquery 参数一样序列化。从文档中,

    * Alternative {@link $http `$http`} params serializer that follows
    * jQuery's [`param()`](http://api.jquery.com/jquery.param/) method logic.
    * The serializer will also sort the params alphabetically.
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-13
      • 2014-03-27
      • 1970-01-01
      • 1970-01-01
      • 2023-03-12
      相关资源
      最近更新 更多