Я использую схему дерева Майка Бостока в качестве основы для дерева с возможностью поиска. . Мне интересно, может ли пользователь ввести имя в поле поиска, а дерево открыть свои узлы для именованного узла, если оно найдено в дереве.
`{
"name": "flare",
"children": [
{
"name": "analytics",
"children": [
{
"name": "cluster",
"children": [
{"name": "AgglomerativeCluster", "size": 3938},
{"name": "CommunityStructure", "size": 3812},
{"name": "HierarchicalCluster", "size": 6714},
{"name": "MergeEdge", "size": 743}
]
},
{
"name": "graph",
"children": [
{"name": "BetweennessCentrality", "size": 3534},
{"name": "LinkDistance", "size": 5731},
{"name": "MaxFlowMinCut", "size": 7840},
{"name": "ShortestPaths", "size": 5914},
{"name": "SpanningTree", "size": 3416}
]
},
{
"name": "optimization",
"children": [
{"name": "AspectRatioBanker", "size": 7074}
]
}
]
}, ...etc`
Так, например, все узлы закрыты, на экране отображается только корневой узел «flare», и пользователь ищет «MergeEdge», который находится как конечный узел в «кластере», который находится в «аналитике». Затем дерево будет открывать только те узлы, которые необходимы для отображения дочерних элементов «кластера», потому что именно там был найден «MergeEdge». Я пробовал с jsonpath.js, но не очень далеко продвинулся и с ответом на этот вопрос, который я получал, возвращается, но только когда узлы открыты, отображая тот, который я ищу.
Я хочу использовать разные файлы json, которые могут иметь слишком много узлов, чтобы отображать их все сразу.