C# 未知模式嵌套子节点的动态json可视化

C# 未知模式嵌套子节点的动态json可视化,c#,asp.net,json,visualization,C#,Asp.net,Json,Visualization,我有一个JSON字符串(从文件中读取),我想在网页上显示它 JSON有嵌套的子对象,有些嵌套得比其他子对象更深,总共有200000个对象 我需要某种方法来可视化这个复杂的json,这样用户就可以扩展和关闭节点,删除节点及其子节点 是否有任何本机.net组件或开源组件可用于此用途,并且有人可以在下面演示它们的用途 {"Files": { "list_of_files": [ "testfile.txt", "textfile2.txt"

我有一个JSON字符串(从文件中读取),我想在网页上显示它

JSON有嵌套的子对象,有些嵌套得比其他子对象更深,总共有200000个对象

我需要某种方法来可视化这个复杂的json,这样用户就可以扩展和关闭节点,删除节点及其子节点

是否有任何本机.net组件或开源组件可用于此用途,并且有人可以在下面演示它们的用途

    {"Files":
    {
      "list_of_files": [
        "testfile.txt",
        "textfile2.txt"
      ],
      "folder1":
       {
        "list_of_files": [
          "test.txt"
        ]
       },
        "folder2": {
          "list_of_files": [
            "test1.txt",
            "test2.txt"
          ], 
     "folder2_folder1":
       {
        "list_of_files": [
          "test.txt"
        ]
       }
        }
    }
 }

最明显的解决方案是使用某种树视图。你用ASP.NET标记了它,并且有ASP:TreeView组件,但是鉴于你的集合非常大,我不鼓励你使用它,因为页面大小可能非常大(可能组件支持虚拟化,但不确定) 相反,您应该使用客户端可视化。我建议用树形视图来观察角度

Angular非常易于学习,使用它的MVVM架构,您可以轻松地虚拟化数据,这样您就不必担心了;不需要在开始时加载所有的文件


另一种选择是使用silverlight,但这有点限制。

是的,你可以用JSON做这种事情。你有一个hpw的例子可以用这个例子来讨论JSON吗?你想从这些数据中获得什么样的洞察力?这一切都是关于文件夹结构或其他什么?好问题,我想简单地允许用户按照文件夹结构到特定的位置或文件。如果他们想选择一个节点并删除该节点,那么他们可以,并且UI将更新OK,我将检查它。理想情况下,我希望有一个asp.net、javascript、ajax组合解决方案,但我同意你关于文件大小的观点。我想通过尽可能早地删除不必要的信息来清除这个问题。这一切归结起来就是,只有在父级打开时才能添加新项目,我认为asp.net不会这样,因为它(最多)会重新加载整个组件。这就是为什么我建议您使用angular,这里的优点是您可以在运行时添加、删除节点,并且视图会自动更新,而无需执行任何操作。