У меня есть данные JSON, поступающие с сервера, которые я должен отображать в древовидной таблице в пользовательском интерфейсе. Я использую для этого компонент PrimeNG Tree Table. Проблема, с которой я столкнулся, заключается в том, что для таблицы Tree требуются данные в определенном формате.
Например:
Это данные, которые я получаю с сервера:
{
"records": [
{
"name":"Documents",
"size":"75kb",
"type":"Folder",
sub-folder: [
{
"name":"Work",
"size":"55kb",
"type":"Folder"
},
{
"name":"Expenses.doc",
"size":"30kb",
"type":"Document"
}
]
},
{
"name":"Documents",
"size":"75kb",
"type":"Folder",
sub-folder: [
{
"name":"Work",
"size":"55kb",
"type":"Folder"
}
]
}
]
}
Но древовидной таблице потребуются данные в следующем формате:
{
"data":
[
{
"data":{
"name":"Documents",
"size":"75kb",
"type":"Folder"
},
"children":[
{
"data":{
"name":"Work",
"size":"55kb",
"type":"Folder"
},
"children":[
{
"data":{
"name":"Expenses.doc",
"size":"30kb",
"type":"Document"
}
},
{
"data":{
"name":"Resume.doc",
"size":"25kb",
"type":"Resume"
}
}
]
}
]
}
]
}
Это становится трудно сделать вручную, поскольку сложность JSON, который я разбираю, велика. Есть ли способ автоматически сопоставить данные JSON с тем, как это нужно для древовидной таблицы?
Вот как выглядит интерфейс Tree Node. Узел дерева представляет собой одну строку таблицы дерева.
export interface TreeNode {
data?: any;
children?: TreeNode[];
leaf?: boolean;
expanded?: boolean;
}