关于node.js:如何通过C解析url查询字符串?

how can I parse url query string by C++?

是否有一个轻量级的库?

我正在使用node.js解析url日志文件,但由于默认模块querystring和tj qs,我发现它运行缓慢。

所以我想知道是否有一个C库来解析url(最好直接解析为json字符串),它的轻量级足以编译为节点C插件。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
qs.parse('/?0=foo')
qs.parse('/?a[>=]=23')
qs.parse('/?foo=bar&baz')
qs.parse('/?a[b][c]=d')
qs.parse('/?a[b][c][d]=e')
qs.parse('/?a=b&a=c')
qs.parse('/?a[]=b')
qs.parse('/?a[]=b&a[]=c&a[]=d')
qs.parse('/?a=b&a[]=c')
qs.parse('/?a[]=b&a=c')
qs.parse('/?a=b&a[0]=c')
qs.parse('/?a=b&a[1]=c')
qs.parse('/?a[b][]=c&a[b][]=d')
qs.parse('/?a[1]=c&a[0]=b&a[2]=d')
qs.parse('/?a[1]=c&a[0]=b')
qs.parse('/?a[20]=a')
qs.parse('/?a[12b]=c')
qs.parse('/?he%3Dllo=th%3Dere')
qs.parse('/?a[b]=c%20d')
qs.parse('/?foo[0]=bar&foo[bad]=baz')
qs.parse('/?foo[bad]=baz&foo[0]=bar')
qs.parse('/?foo[]=bar&foo[bad]=baz')
qs.parse('/?foo[0][a]=a&foo[0][b]=b&foo[1][a]=aa&foo[1][b]=bb')
qs.parse('/?a[]=b&a[t]=u&a[hasOwnProperty]=c')
qs.parse('/?foo[0].baz=bar&fool.bad=baz')
// ...

好吧,你能感觉到我的问题吗?


您可以使用cpp-netlib库,尤其是URI类(boost :: network :: http :: uri)。更多信息在这里。