在C#中将文件列表转换为JSON数组

时间:2014-10-14 15:30:26

标签: c# json

我正在使用ASP.NET中的API。此API使用C#编写。我正在查看目录,我试图将每个文件详细信息列为JSON字符串。最终结果需要像这样工作:

string json = "[{ name:'picture-1.png', mime-type:'image/png', size: 968 }, { name:'picture-2.png', mime-type:'image/png', size: 2578 }]";

为了尝试这样做,我目前有以下代码:

string jsonArrayString = "[]";

string directory = Path.Combine(Server.MapPath("/"), "Files");
if (Directory.Exists(directory))
{
  string[] fileNames = Directory.GetFiles(directory, "picture*", SearchOption.TopDirectoryOnly);
  foreach (string filename in fileNames)
  {
    FileInfo fileInfo = new FileInfo(fileName);

    string actualFileName = fileInfo.Name;
    string mimeType = MimeMapping.GetMimeMapping(fileInfo.Name);
    long size = FileInfo.length;

    // Add to JSON array?
  }
}  


return jsonArrayString;

我不知道最好的办法是什么。我所做的一切都像是黑客。似乎应该有一种简单的方法来做我正在尝试的事情。然而,这显然是我不知道的事情。

2 个答案:

答案 0 :(得分:2)

使用JSON.net

首先,创建一个这样的类

public class FileInformation
{
    public string name{get;set;}
    [JsonProperty(PropertyName = "mime-type")]
    public string mimeType{get;set;}
    public int size {get;set;}
}

然后

var list = new List<FileInformation>();

foreach (string filename in fileNames)
{
  FileInfo fileInfo = new FileInfo(fileName);

  string actualFileName = fileInfo.Name;
  string mimeType = MimeMapping.GetMimeMapping(fileInfo.Name);
  long size = FileInfo.length;


  list.Add(new FileInformation(){//SetProperties});
}

var yourJSONString = JsonConvert.SerializeObject(list);

它是

从网站下载JSON.net     http://james.newtonking.com/json 或通过nuget

答案 1 :(得分:-1)

您需要读取文件,将内容添加到JSON对象。

Jsondata.file = System.IO.File.ReadAllText(Filepath);