从文件流中读取内容c#
Reading content from a file stream c#
我有一个接受文件上传的网络 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
您可以使用 StreamReader
class。试试这个代码:
using (var reader = new StreamReader(httpRequest.Files[0].InputStream))
{
var content = reader.ReadToEnd();
var json = JObject.Parse(content);
var name = json["name"];
}
另一种选择是为您的 json 创建一个 class(手动或通过 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;
}
我有一个接受文件上传的网络 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
您可以使用 StreamReader
class。试试这个代码:
using (var reader = new StreamReader(httpRequest.Files[0].InputStream))
{
var content = reader.ReadToEnd();
var json = JObject.Parse(content);
var name = json["name"];
}
另一种选择是为您的 json 创建一个 class(手动或通过 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;
}