javascript – 在ExpressJS中使用带有数组的JSON
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript – 在ExpressJS中使用带有数组的JSON,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1372字,纯文字阅读大概需要2分钟。
内容图文
![javascript – 在ExpressJS中使用带有数组的JSON](/upload/InfoBanner/zyjiaocheng/787/0618877b597d4e96b3499cf496dee03b.jpg)
在网页上我使用jQuery发布了一些JSON:
$.post('/url', data);
我的数据是一个javascript对象,包含一些值和一个数组. JSON.stringify(data)看起来像:
{"favoriteAnimal":"piglet", "okayAnimals":["cats","dogs"]}
我正在使用ExpressJS(与身体解析器中间件连接)在NodeJS webapp中使用这个JSON.我可以检索像req.body.favoriteAnimal这样的最喜欢的动物,它给了我一个很好和花花公子的字符串仔猪.
但是如何访问数组中的值?
req.body.favoriteAnimal // piglet
req.body.okayAnimals // undefined
req.body.okayAnimals[] // syntax error
这有效……
req.body['okayAnimals[]']
……但闻起来很腥.如果正在POST的原始数据在其数组中只包含一个元素(它只返回一个字符串),它也不会返回数组.
JSON的jQuery编码是否正在发生什么事情,或者ExpressJS中的解码正在发生什么事情阻止我像req.body.okayAnimals那样访问它并且每次都得到一个数组?
解决方法:
凯文的回答几乎让我在那里.
$.post(‘/ url’,JSON.stringify(data))将发送一个更近的字符串.不幸的是,jQuery的$.post设置了错误的标题
Content-Type:application/x-www-form-urlencoded; charset=UTF-8
ExpressJS的正文解析器无法正确处理.你结束了
req.body={"{\"favoriteAnimal\":\"piglet\",\"okayAnimals\":[\"cats\",\"dogs\"]}":""}
我重写了我发送数据的方式.
$.ajax({
url: '/url',
type: 'POST',
data: data,
contentType: 'application/json; charset=utf-8',
dataType: 'json'
})
我看到我的浏览器发送了正确的标题
Content-Type:application/json; charset=UTF-8
并观察
req.body={"favoriteAnimal":"piglet","okayAnimals":["cats","dogs"]}
内容总结
以上是互联网集市为您收集整理的javascript – 在ExpressJS中使用带有数组的JSON全部内容,希望文章能够帮你解决javascript – 在ExpressJS中使用带有数组的JSON所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。