给定 JSON 中的第一行是什么?

What is the first line in the given JSON?

在 nodeJs 中使用 Sequelize 时,我收到了来自 Sequelize 的错误,如下所示:

{ [SequelizeUniqueConstraintError: Validation error]
  name: 'SequelizeUniqueConstraintError',
  message: 'Validation error',
  errors: 
   [ { message: 'unique_identifier_UNIQUE must be unique',
       type: 'unique violation',
       path: 'unique_identifier_UNIQUE',
       value: 'authentication123456' } ],
  fields: { unique_identifier_UNIQUE: 'authentication123456' } }

错误本身非常清楚。但是引起我注意的是这个 JSON 看起来很奇怪。 在这个JSON的第一行你可以看到:

[SequelizeUniqueConstraintError: Validation error]

这不是字符串,也不是数组,甚至后面没有逗号将其与 JSON.

中的下一行分隔开

那是什么?对我来说,它看起来像是评论或标题。但这在 JSON 中允许吗?我没有找到任何参考解释。

好的,我明白这是从哪里来的了。

此错误是使用 console.log(err) 命令打印的。它所做的是调用 err 对象的 toString 方法,该方法按原样格式化结果。 感谢@Pointy,我注意到这甚至不是 JSON 这让我明白了这个问题。因此,调用 JSON.stringify(err) 而不是 console.log(err),现在我们有了正确的 jSON 格式:

{
    "name": "SequelizeUniqueConstraintError",
    "message": "Validation error",
    "errors": [
        {
            "message": "unique_identifier_UNIQUE must be unique",
            "type": "unique violation",
            "path": "unique_identifier_UNIQUE",
            "value": "authentication123456"
        }
    ],
    "fields": {
        "unique_identifier_UNIQUE": "authentication123456"
    }
}