我想知道是否有办法获取特定的目录结构并将其解析为 json,以便我可以使用 jquery 插件创建客户端树视图模式。提前致谢
问问题
2935 次
3 回答
6
使用 JSON.NET:
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" ]
}
于 2013-04-03T17:10:23.270 回答
1
事实上,有一种使用Json.NET将 C# 对象转换为 JSON 的简单方法。
您只需创建一个List<>
包含您想要的数据然后调用
var wrapper = new { TreeData= list };
string json = JsonConvert.SerializeObject(wrapper);
于 2013-04-03T17:09:30.303 回答
-1
您可以创建自定义类,例如:
abstract class DirectoryChildItem
{
public string Name { get; set; }
}
class Directory : DirectoryChildItem
{
public List<DirectoryChildItem> Childs { get; set; }
}
class File : DirectoryChildItem
{
}
然后你应该使用静态类 System.IO.Directory 遍历你的文件系统并使用上面的类创建项目。遍历文件系统后,在您的 ASP.NET MVC 操作中使用“return Json(obj)”方法
于 2013-04-03T17:08:29.723 回答