{
"_id" : ObjectId("587f5455da1da85d2bd01fc5"),
"totalTime" : 0,
"lastUpdatedBy" : ObjectId("57906bf8f4add282195d0a88"),
"createdBy" : ObjectId("57906bf8f4add282195d0a88"),
"workSpaceId" : ObjectId("57906c24f4add282195d0a8a"),
"locationId" : ObjectId("5790629c841f1a9913b12104"),
"projectId" : ObjectId("57906d33f4add282195d0aa2"),
"title" : "asdf asdfasdf",
"subTitles" : [
{
"childrensTitle" : "fffffffffffff",
"createdBy" : ObjectId("57906bf8f4add282195d0a88"),
"lastUpdatedBy" : ObjectId("57906bf8f4add282195d0a88"),
"totalTime" : 0,
"created_at" : ISODate("2017-01-18T11:41:32.974Z"),
"subTitles" : [
{
"childrensTitle" : "Ufffffff",
"createdBy" : ObjectId("57906bf8f4add282195d0a88"),
"lastUpdatedBy" : ObjectId("57906ce1f4add282195d0a96"),
"totalTime" : 0,
"created_at" : ISODate("2017-01-18T11:41:37.151Z"),
"subTitles" : [
{
"childrensTitle" : "date n time",
"createdBy" : ObjectId("57906bf8f4add282195d0a88"),
"lastUpdatedBy" : ObjectId("57906bf8f4add282195d0a88"),
"totalTime" : 0,
"created_at" : ISODate("2017-01-18T11:41:40.716Z"),
"subTitles" : [ ],
"_id" : ObjectId("587f5474da1da85d2bd01fcb")
}
],
"_id" : ObjectId("587f5471da1da85d2bd01fca")
}
],
"_id" : ObjectId("587f546cda1da85d2bd01fc9")
}
],
"created_at" : ISODate("2017-01-18T11:41:09.301Z"),
"__v" : 3
}
我正在尝试打印每个级别的totalTime
,但我只能打印最多2层......之后它是未定义
。例如:
console.log(mainTitle[0].subTitles[req.body.index].subTitles[req.body.index].subTitles[req.body.index].totalTime) // undefined
最佳答案
这不是 JSON。这是来自 MongoDB 的 BSON 的 JavaScript 表示,它恰好使用了不必要的引用对象键。
您需要定义 ISODate()
和 ObjectId()
函数(可以从 Mongo 驱动程序或 Mongoose 获取)并使用它们来解析对这些函数的调用功能。否则你会得到错误,因为这些函数未定义。
并且您不能使用 JSON.parse()
来解析它,因为这不是 JSON。
更新
当您访问时:
mainTitle[0].subTitles[req.body.index].subTitles[req.body.index].subTitles[req.body.index].totalTime
我将其简化为:
var i = req.body.index;
mainTitle[0].subTitles[i].subTitles[i].subTitles[i].totalTime
但这只是为了可读性。
我会一次测试一个嵌套级别:
var i = req.body.index;
console.log(i);
console.log(mainTitle);
console.log(mainTitle[0]);
console.log(mainTitle[0].subTitles);
console.log(mainTitle[0].subTitles[i]);
console.log(mainTitle[0].subTitles[i].subTitles);
console.log(mainTitle[0].subTitles[i].subTitles[i]);
console.log(mainTitle[0].subTitles[i].subTitles[i].subTitles);
console.log(mainTitle[0].subTitles[i].subTitles[i].subTitles[i]);
console.log(mainTitle[0].subTitles[i].subTitles[i].subTitles[i].totalTime);
不太漂亮,但有时这是缩小问题范围的最佳方法。
可以提供帮助的模块
要访问深层结构,您可以使用:
关于javascript - 如何使用 javascript 解析(获取值)嵌套的 json 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41737522/