Hapi 响应不显示树状(嵌套)json
Hapi response doesn't show tree-like (nested) json
好的,所以我有一个具有以下结构的对象:
interface FolderWithContent {
uuid: string
name: string;
folders: Array<FolderWithContent>;
files: Array<Files>;
}
其中文件是 Sequelize.Model 的扩展名。
我正在尝试 return 它与 hapi (return h.response(tree).code(200);
)(树是我的对象,当然)
问题是,我的对象有多个级别,响应仅显示根级别和第 1 级别。所以如果我有
{
"name": "folder1.1",
"uuid": "1",
"folders": [
{
"name": "folder2",
"uuid": "3986b8ca-314c-4ba8-b47c-9baa29ca7adc"
},
{
"name": "folder2.6",
"uuid": "7ff93401-1281-419c-9541-fb859c4e79e1",
"folders": [
{
"name": "folder3.1",
"uuid": "8d76aa76-fa42-40c6-9c46-9fa26c6b555c"
}
],
"files": [
{
"name": "file5",
"uuid": "9a8c9aa2-23bd-45e3-bb43-ddf0e085b066"
}
]
}
],
"files": [
{
"name": "file2.2.2",
"uuid": "88519cec-b19a-4e12-9138-6273ac66ba76"
},
{
"name": "file1",
"uuid": "9eb5235d-9d04-494d-845c-4a9780bc9687"
}
]
}
我不会获取folder2.6里面的文件夹和文件。
我试过 return tree.folders[2],但它仍然只显示文件夹名称和 uuid。但是,如果我 return tree.folders[2].folders,它只会显示 folder2.6.
中的文件夹和文件
我试过调用 Json.stringfy(tree) 但它也有完全相同的问题。
我仍然不知道为什么我遇到了这个问题,但我发布了我找到的解决问题的方法。
原来问题出在 sequelize 上。所有对象都是来自 sequelize 的模型。将对象转换为简单的 JSON 对我来说很成功。
tree.folders = content.folders?.map((folder) => {
return {
name: folder.name,
uuid: folder.uuid,
updated_at: folder.updated_at,
synced: folder.synced,
folders: [],
files: []
};
});
tree.files = content.files?.map((file) => {
return {
name: file.name,
uuid: file.uuid,
updated_at: file.updated_at,
synced: file.synced
};
});
好的,所以我有一个具有以下结构的对象:
interface FolderWithContent {
uuid: string
name: string;
folders: Array<FolderWithContent>;
files: Array<Files>;
}
其中文件是 Sequelize.Model 的扩展名。
我正在尝试 return 它与 hapi (return h.response(tree).code(200);
)(树是我的对象,当然)
问题是,我的对象有多个级别,响应仅显示根级别和第 1 级别。所以如果我有
{
"name": "folder1.1",
"uuid": "1",
"folders": [
{
"name": "folder2",
"uuid": "3986b8ca-314c-4ba8-b47c-9baa29ca7adc"
},
{
"name": "folder2.6",
"uuid": "7ff93401-1281-419c-9541-fb859c4e79e1",
"folders": [
{
"name": "folder3.1",
"uuid": "8d76aa76-fa42-40c6-9c46-9fa26c6b555c"
}
],
"files": [
{
"name": "file5",
"uuid": "9a8c9aa2-23bd-45e3-bb43-ddf0e085b066"
}
]
}
],
"files": [
{
"name": "file2.2.2",
"uuid": "88519cec-b19a-4e12-9138-6273ac66ba76"
},
{
"name": "file1",
"uuid": "9eb5235d-9d04-494d-845c-4a9780bc9687"
}
]
}
我不会获取folder2.6里面的文件夹和文件。 我试过 return tree.folders[2],但它仍然只显示文件夹名称和 uuid。但是,如果我 return tree.folders[2].folders,它只会显示 folder2.6.
中的文件夹和文件我试过调用 Json.stringfy(tree) 但它也有完全相同的问题。
我仍然不知道为什么我遇到了这个问题,但我发布了我找到的解决问题的方法。
原来问题出在 sequelize 上。所有对象都是来自 sequelize 的模型。将对象转换为简单的 JSON 对我来说很成功。
tree.folders = content.folders?.map((folder) => {
return {
name: folder.name,
uuid: folder.uuid,
updated_at: folder.updated_at,
synced: folder.synced,
folders: [],
files: []
};
});
tree.files = content.files?.map((file) => {
return {
name: file.name,
uuid: file.uuid,
updated_at: file.updated_at,
synced: file.synced
};
});