为什么我的JSON无效?

为什么我的JSON无效?,json,mongodb,parsing,Json,Mongodb,Parsing,问这个问题我觉得很愚蠢,但我根本不知道这个JSON有什么问题。它是mongoDB服务器从GET请求返回的一系列文档: { __v: 0, _id: 59234b9737d68fcd1b6cd62c, UId: '58f8954c3602b80552b6f1fb', SerialNumber: 'IIOJOIMJ', ChildName: 'TEST', created_at: Mon May 22 2017 22:35:35 GMT+0200 (CEST), update

问这个问题我觉得很愚蠢,但我根本不知道这个JSON有什么问题。它是mongoDB服务器从GET请求返回的一系列文档:

{ __v: 0,
  _id: 59234b9737d68fcd1b6cd62c,
  UId: '58f8954c3602b80552b6f1fb',
  SerialNumber: 'IIOJOIMJ',
  ChildName: 'TEST',
  created_at: Mon May 22 2017 22:35:35 GMT+0200 (CEST),
  updatedAt: Mon May 22 2017 22:35:35 GMT+0200 (CEST) },{ __v: 0,
  _id: 592354b197312b7f1e1e250b,
  UId: '58f8954c3602b80552b6f1fb',
  SerialNumber: 'IIOJOIMJ555',
  ChildName: 'TEST2',
  created_at: Mon May 22 2017 23:14:25 GMT+0200 (CEST),
  updatedAt: Mon May 22 2017 23:14:25 GMT+0200 (CEST) }
我已经尝试了一些在线JSON验证器,但他们一直给我这个错误(这可能是对的,但我无法解释):

谢谢你的帮助


编辑:我不小心粘贴了两次文档

,虽然这个JSON可能在JavaScript中解析OK,但需要在键周围加引号

{ "__v": 0, ... }

虽然此JSON可能在JavaScript中解析OK,但需要在键周围加引号

{ "__v": 0, ... }

有效的json具有双引号中的键。将所有json键(分号前的名称)放在“.”中。

有效的json键用双引号括起来。将所有的json键、分号前的名称放在“.”中。

这根本不是json。这是一个JavaScript对象,你根本不需要解析它。您只需访问Mongo返回的对象中的元素。如果您得到多个结果,您就拥有一个数组。您必须选择访问哪一个(
数据[0].SerialNumber
)或循环访问每一个。@JJJ的答案是正确的<代码>数据。未定义SerialNumber,因为数组没有名为
SerialNumber
的属性。但是,数组中的元素可以。如果看不到您正在尝试做什么,就不可能真正说出问题所在。出于某种原因,当Mongo响应与JSON无关时,您一直试图将JSON强制加入其中;我99%确信这是你问题的主要原因。我建议您打开一个新的问题,使用您用来查询数据库的实际代码,并清楚地解释您试图实现的目标。它根本不是JSON。这是一个JavaScript对象,你根本不需要解析它。您只需访问Mongo返回的对象中的元素。如果您得到多个结果,您就拥有一个数组。您必须选择访问哪一个(
数据[0].SerialNumber
)或循环访问每一个。@JJJ的答案是正确的<代码>数据。未定义SerialNumber,因为数组没有名为
SerialNumber
的属性。但是,数组中的元素可以。如果看不到您正在尝试做什么,就不可能真正说出问题所在。出于某种原因,当Mongo响应与JSON无关时,您一直试图将JSON强制加入其中;我99%确信这是你问题的主要原因。我建议你打开一个新的问题,用你用来查询数据库的实际代码,并清楚地解释你试图实现的目标。问题是它没有。当我执行类似于
list=data.SerialNumber
的操作时,我得到了
未定义的
问题是它没有。当我执行类似于
list=data.SerialNumber
的操作时,我会得到
未定义的