1

jquery プラグインを使用してクライアント側のツリービュー スキーマを作成できるように、特定のディレクトリ構造を取得して json に解析する方法があるかどうかを知りたいです。前もって感謝します

4

3 に答える 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 に答える