我有一个接受文件上传的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
答案 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;
}