Есть ли способ автоматически сопоставить данные json с экземпляром Tree Node в PrimeNG для Tree Table?

У меня есть данные 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;
}



person Mehul Solanki    schedule 17.11.2019    source источник


Ответы (1)


Я столкнулся с той же проблемой, к сожалению, вам нужно написать свой собственный парсер JSON, чтобы изменить формат, прежде чем привязывать его к дереву. Поскольку шаблон дерева primeng связан с этими конкретными ключами и действиями, основанными на этой привязке.

person Abhinav Kumar    schedule 17.11.2019