有没有一种方法可以直接在c#中获取目录结构并将其解析为Json ?

本文关键字:结构 获取 Json 一种 方法 有没有 | 更新日期: 2023-09-27 18:07:20

我想知道是否有一种方法可以获得特定的目录结构并将其解析为json,这样我就可以使用jquery插件创建客户端树形视图架构。提前感谢

有没有一种方法可以直接在c#中获取目录结构并将其解析为Json ?

使用JSON。净:

JToken GetDirectory(DirectoryInfo directory)
{
    return JToken.FromObject(new
    {
        directory = directory.EnumerateDirectories()
            .ToDictionary(x => x.Name, x => GetDirectory(x)),
        file = directory.EnumerateFiles().Select(x => x.Name).ToList()
    });
}

使用例子:

var json = GetDirectory(new DirectoryInfo("...some path...")).ToString();

这会给你一个JSON,看起来像这样:

{
    "directory":
    {
        "dirA": {
            "file" : [ "file0.txt", "file1.jpg" ]
        },
        "emptyDir": {
        }
    },
    "file": [ "file2.png" ]
}

事实上,有一种简单的方法可以使用Json.NET将c#对象转换为JSON。

您只需创建一个包含所需数据的List<>,然后调用

var wrapper = new { TreeData= list };
string json = JsonConvert.SerializeObject(wrapper);

您可以创建自定义类,如:

abstract class DirectoryChildItem
{
    public string Name { get; set; }
}
class Directory : DirectoryChildItem
{
    public List<DirectoryChildItem> Childs { get; set; }
}
class File : DirectoryChildItem
{
}
然后,您应该使用静态类system . io . directory遍历文件系统,并使用上面的类创建项。在遍历文件系统后,在ASP中使用"返回Json(obj)"方法。. NET MVC动作