前端如何传递数组到服务端?
发布于 8 年前 作者 JarvisQJ 10037 次浏览 来自 问答

一直不清楚,怎么把形如:[{a:1},{b:2}]的数组传到服务端,保证可以解析。请大家解惑。

15 回复

构建一个object传

不是直接 json 就可以吗?

用json,或者放在querystring里,服务端解析相应的参数

传递复杂的 json 格式的话,请使用 application/json 的方式传递字符串 [{a:1},{b:2}], 简单的数据可以使用 querystring 传递数组,比如传递 id 字段,值为 [1,2,3,4]; 可以这样 ?id=1&id=2&id=3&id=4

如果是Node.js直接传数组对象。。 其他服务器语言需要传字符串转换啥的 我感觉这就是node.js的优势哒

@yangjaixi @hi363138911 @nullcc @nunnly @nasaplayer 是说{x:[{a:1},{b:2}]}这种形式吗,这种方式传过去,数组变成字符串了(被引号包起来了),解析不了。 x[0].a,点不出来东西

@qujinxiong 看你ContentType设置了…序列化之后就是个字符串,你可以直接传json格式进去,Content-Type : application/json 如果是序列化成字符串,服务器端解析一下就好(JSON.stringify <=> JSON.parse)

要从字符串解析出json你要用JSON.parse()

如果不考虑低版本IE,使用 JSON.stringify 呀,你这个明显格式就不对头… 字符串要是 JSON 字符串

照例自问自答: 如下图传递复杂结构json,服务端获取到的数组可以直接解析 untitled1.png 结果如下: untitled2.png

@qujinxiong 不错不错,问问题就是要有始有终,还可以帮助别人,感谢你

关于发送复杂数据的问题,我们需要关注两web端与server端 web端使用jquery.ajax,使用contentType: "application/json; charset=utf-8"请求头,并使用post方式发送。 在server端需要使用app.use(bodyParser.json({limit: ‘1mb’}))来解析 这两条包含了,就可以正常使用req.body来获取了

回到顶部