Angularjs 正确解码Angular 1.4$httpParamSerializer查询字符串?
下面是我要序列化的对象:Angularjs 正确解码Angular 1.4$httpParamSerializer查询字符串?,angularjs,node.js,query-string,Angularjs,Node.js,Query String,下面是我要序列化的对象: {"cars": [ {"make":"volkswagen","model":"golf"}, {"make":"volkswagen","model":"polo"}, {"make":"audi","model":"a3"}, {"make":"bmw","model":"1-series"}, {"make":"renault","model":"espace"} ]} 以前,我在node.js上使用jQuery$.param(
{"cars": [
{"make":"volkswagen","model":"golf"},
{"make":"volkswagen","model":"polo"},
{"make":"audi","model":"a3"},
{"make":"bmw","model":"1-series"},
{"make":"renault","model":"espace"}
]}
以前,我在node.js上使用jQuery$.param()
函数和qs
库对其进行解码。一切正常,我不需要自己解析任何东西
现在,我决定使用新的Angular 1.4服务$httpParamSerializer
来摆脱jQuery。解码后,我得到的不是数组中的对象
,而是字符串
:
'{"make":"volkswagen","model":"golf"}'
如何正确解码使用$httpParamSerializer
服务创建的querystring,而无需对数组中的每个对象调用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
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`
下面是$httpParamSerializer
查询字符串:
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
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`
还有$HttpParamSerializerJQLikeProvider,它像jquery param一样进行序列化。从文件来看
* 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.