【发布时间】:2017-12-23 08:24:50
【问题描述】:
我在节点中使用 express-validator 来验证我的表单,一旦我返回了充满错误的验证结果,它们会通过一个对象(这就是我所拥有的):
{ email:
{ param: 'email',
msg: 'Email address must be between 4-100 characters long, please try again.',
value: '' },
name:
{ param: 'name',
msg: 'Name must be between 3-20 characters long.',
value: '' },
password:
{ param: 'password',
msg: 'Password must include one lowercase character, one uppercase character, a number, and a special character.',
value: '' },
passwordc:
{ param: 'passwordc',
msg: 'Password must be between 8-50 characters long.',
value: '' } }
我遇到的问题是这是一个“字符串”,不幸的是不是对象类型。我需要把它转换成它应该的样子,一个带有嵌套对象的对象。
我不能使用 JSON.parse,因为这不是有效的 JSON。
我怎样才能把这串对象变成一个对象?这样我就可以循环显示相关的错误。
感谢您的帮助。 P.S 我非常坚持这一点——所以如果你知道这个问题的答案,那么我会给你很多布朗尼点。干杯!
【问题讨论】:
-
你的 JSON 是有效的,为什么你不能在这种情况下使用
JSON.parse? -
你可以用 JSONLint 来检查,它是无效的。有效的 JSON 应该有双引号,而不是单引号,并且所有键也应该有双引号。我可以 JSON.parse 的唯一方法是在运行太多正则表达式之后,这不是一个好方法,因为键名可能会改变。我真的被这个难住了!
-
我很困惑,这是一个有效的 JavaScript 对象而不是字符串。
-
@str 就是这样!我已经检查过了,jsonviewer.stack.hu,看起来很完美
-
我也很困惑哈哈。如果我在 gettype() 中运行这个对象,它是一个字符串,并在控制台中显示为一个字符串,即使它是一个对象。我无法按原样运行 JSON.parse,因为它当前是一个字符串。
标签: javascript json node.js object express