在C#中将文件列表转换为JSON数组 [英] Converting List of Files into JSON array in C#

查看:1015
本文介绍了在C#中将文件列表转换为JSON数组的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I am working on an API in ASP.NET. This API is written in C#. I am looking at a directory and I am trying to list each files details as a JSON string. The end result needs to work like this:

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

为此,我目前有以下代码:

In an attempt to do this, I currently have the following code:

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;

我不知道什么是最好的方法.我正在做的每件事都感觉像是黑客.似乎应该有一种简单的方法来做我正在尝试的事情.但是,它显然是我不知道的.

I do not know what the best way to do this. Everything I'm doing feel like a hack. It seems like there should be an easy way to do what I'm trying. Yet, its clearly something I do not know.

推荐答案

使用JSON.net

Use JSON.net

首先,创建一个像这样的类

First, create a class like this

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

Download JSON.net from the website http://james.newtonking.com/json or via nuget

这篇关于在C#中将文件列表转换为JSON数组的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆