我有一个txt文件,里面有一些数据。我想以JSON格式返回数据。
为什么当我在我的控制器中执行此操作时,我能够显示结果(但不能以JSON格式显示):
public IHttpActionResult Get()
{
return new FileReaderClient("C:\\Users\\attsuap1\\Desktop\\1milliontest.txt");
}
但是当我这样做时,我得到的结果为:{"Data":{}}
public IHttpActionResult Get()
{
var result = new FileReaderClient("C:\\Users\\attsuap1\\Desktop\\1milliontest.txt");
return Ok(new { Data = result });
}
如果我只是return result
:
public IHttpActionResult Get()
{
var result = (new FileReaderClient("C:\\Users\\attsuap1\\Desktop\\1milliontest.txt"));
return result;
}
我确实得到了数据,但它不是我想要的Json格式,例如{"Data": "Allthecontentinhere"}
。我尝试return Json(result)
也没有用。
这是我的FileReaderClient.cs类
public class FileReaderClient : IHttpActionResult
{
private readonly string filePath;
private readonly string contentType;
public FileReaderClient(string filePath, string contentType = null)
{
this.filePath = filePath;
this.contentType = contentType;
}
public Task<HttpResponseMessage> ExecuteAsync(CancellationToken cancellationToken)
{
return Task.Run(() =>
{
var response = new HttpResponseMessage(HttpStatusCode.OK)
{
Content = new StreamContent(File.OpenRead(filePath))
};
var contentType = this.contentType ?? MimeMapping.GetMimeMapping(Path.GetExtension(filePath));
response.Content.Headers.ContentType = new MediaTypeHeaderValue(contentType);
return response;
}, cancellationToken);
}
}
如何编辑我的代码,以便以JSON格式返回文件中的数据?
答案 0 :(得分:1)
您可以使用'JsonConvert' / NewtonSoft的JSON.Net库,
var million_records;
using(StreamReader sr = new StreamReader(Server.MapPath("~/Uploads/1milliontest.json")))
{
million_records= JsonConvert.DeserializeObject<List<MillionData>>(sr.ReadToEnd());
}
return million_records;
希望这会有所帮助。 --- N Baua