javascript - 在节点快递中解析 JSON - 以分隔符之间的 \n 结尾?
问题描述
我正在向快速端点发送 Ajax 请求,如下所示:
var postData = {
method: "POST",
url: "/order/address",
data: { order: JSON.stringify(addressFields) },
cache: false
};
updateAjax = $.ajax(postData).done(function(data) {
发送的地址对象是一个 JSON 数组。在发布数据对象中执行此操作之前,我已经确认它尚未被字符串化。
它发布到运行节点 express 的服务器,路径为 /order/address。
快速路线如下,仅显示到解析 json 的点,因为它是唯一相关的部分:
router.route('/')
.post(function (req, res, next) {
// prevents caching of customer information
res.header('Cache-Control', 'private, no-cache, no-store, must-revalidate');
const addresses = JSON.parse(req.body.order);
在被解析之前, req.body.order 是:
[{\"isDefaultShipping\":true,\"firstName\":\"\",\"lastName\":\"\",\"street1\":\"\",\"street2\":\"\",\"city\":\"\",\"postcode\":\"\",\"region\":\"\",\"country\":\"GB\",\"phone\":\"\",\"isDefaultBilling\":true}]
而且,这是我遇到的问题,在解析后它最终成为无效的 JSON 对象:
[\n {\n isDefaultShipping: true,\n firstName: '',\n lastName: '',\n street1: '',\n street2: '',\n city: '',\n postcode: '',\n region: '',\n country: 'GB',\n phone: '',\n isDefaultBilling: true\n }\n]
我一直无法删除换行符 - 我猜在正在解析的字符串化数据中存在不可见的换行符 - 但我不能终生删除它们?
编辑:有人好心地指出我的愚蠢(礼貌地),上面的输出,带有 \n 换行符,是我的记录器,所以忽略那部分。把它留在那儿 - 好吧,因为删除我得到答案的这部分问题是不礼貌的。
邮递员在到达路径中的 JSON.parse 行时显示以下问题:
SyntaxError: Unexpected token u in JSON at position 0\n at JSON.parse (<anonymous>)
解决方案
只需替换\n
router.route('/')
.post(function (req, res, next) {
// prevents caching of customer information
res.header('Cache-Control', 'private, no-cache, no-store, must-revalidate');
const addresses = JSON.parse(req.body.order).replace(\[\n]+\, '');
推荐阅读
- javascript - Shopify:当购物车页面中的数量发生变化时自动更新价格?
- arrays - 在 Swift 上解码 JSON 数组
- r - 删除 r 中的特定缺失值
- azure - SSAS 表格/PowerBI - 使用两个计算组时内存消耗巨大且响应缓慢
- freeipa - 我可以使用 FreeIPA 选择性地执行 2FA
- image - 如何使用 HIP 将图像类型的精度从 Double 转换为 Word8?
- php - 在另一页上显示选定的行,点击按钮
- python - 如何从python中的boxplot获取最小值和最大值?
- javascript - jquery attr 只获取类而不获取其他属性
- sql - SQL - SELECT person_name where locations 是一个特定的城市