从文件流中读取内容c#

时间:2017-08-02 16:17:50

标签: c# asp.net json file-io streamreader

我有一个接受文件上传的web api服务。该文件的内容是一个小的JSON字符串,如下所示:

{ "name":"John", "age":31, "city":"New York" }

如何在文件内容为流时获取文件内容,而不必将流保存为Web服务器上的文件,然后打开文件?

以下是我的代码:

byte[] fileData = null;
using(var binaryReader = new BinaryReader(httpRequest.Files[0].InputStream))
{
      fileData = binaryReader.ReadBytes(httpRequest.Files[0].ContentLength);
}

我正在使用4.0 .NET Framework

1 个答案:

答案 0 :(得分:2)

您可以使用StreamReader课程。试试这段代码:

using (var reader = new StreamReader(httpRequest.Files[0].InputStream))
{
    var content = reader.ReadToEnd();
    var json = JObject.Parse(content);
    var name = json["name"];
}

另一个选择是为你的json创建一个类(手动或通过http://json2csharp.com/):

public class Person
{
    public string name { get; set; }
    public int age { get; set; }
    public string city { get; set; }
}

然后将您的代码更改为:

using (var reader = new StreamReader(httpRequest.Files[0].InputStream))
{
    var content = reader.ReadToEnd();
    var person = JsonConvert.DeserializeObject<Person>(content);
    var name = person.name;
}