有没有一种方法可以直接在c#中获取目录结构并将其解析为Json ?
本文关键字:结构 获取 Json 一种 方法 有没有 | 更新日期: 2023-09-27 18:07:20
我想知道是否有一种方法可以获得特定的目录结构并将其解析为json,这样我就可以使用jquery插件创建客户端树形视图架构。提前感谢
使用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动作