我正在使用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;
我不知道最好的办法是什么。我所做的一切都像是黑客。似乎应该有一种简单的方法来做我正在尝试的事情。然而,这显然是我不知道的事情。
答案 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);