将数组作为查询字符串传递

4

我正试图通过jsonp将数组传递给我的服务器-这是我尝试传递的JSON示例:

["something","another_thing",4,{"iam" : "anobject"}]

然而,我不确定如何(如果可能的话)传递一个数组。

我认为应该像这样:

something&another_thing&4&[iam]=anobject

但是当我将其传递给node中的querystring.parse()时,它会返回以下结果:
{ '4': '',
  something: '',
  another_thing: '',
  '[iam]': 'anobject' }

那绝对不是我想要的。我只能使用JSON,但我现在想知道是否可能。


2
你尝试使用过 JSON.stringify 吗? - Prog Mania
我已经在我的代码中使用JSON实现了这个功能 - 这只是想知道可以通过GET查询传递什么。 - Jesse
1个回答

11
如果你想使用PHP的URI格式传递该数据结构(这似乎是你的尝试),那么它应该是这个样子:
data[0]=something&data[1]=another_thing&data[2]=4&data[3][iam]=anobject

不过,您最好直接传输JSON本身。获取JavaScript对象并通过 JSON.stringify()encodeURIComponent() 运行它,如下:

data=something%2Canother_thing%2C4%2C%5Bobject%20Object%5D

然后您可以使用querystring.parse(),从中提取data参数,然后对该值运行JSON.parse()


1
正如我在帖子中所说 - 我可以使用JSON(实际上我正在使用),但我主要是想知道是否有一种方法可以将数组作为查询的根对象传递。 - Jesse

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接