gpt4 book ai didi

c# - 如何生成包含 JSON 结构的要下载的文件?

转载 作者:行者123 更新时间:2023-12-05 08:53:08 27 4
gpt4 key购买 nike

我的 Controller 中有这个方法。

public IActionResult Download()
{
return Json(_context.Users);
}

我注意到它生成了正确的 JSON 结构但是它在浏览器中呈现为普通文本。我想把它下载到客户的电脑上。我该怎么做?

我不确定是否应该让我的对象以某种方式流式传输 like this或者在我的硬盘驱动器上创建一个文件并提供给它 like this .

我找不到任何让我印象深刻的东西,就像我们在 C# 中习惯的那样直接和简单。所以我担心我在这里遗漏了一个概念。

最佳答案

您可以只将 json 对象写入流或数组,并使用 File 方法重载之一。添加方便的Serialize方法

private byte[] Serialize(object value, JsonSerializerSettings jsonSerializerSettings)
{
var result = JsonConvert.SerializeObject(value, jsonSerializerSettings);

return Encoding.UTF8.GetBytes(result);
}

并按如下方式使用它

public IActionResult Download()
{
var download = Serialize(_context.Users, new JsonSerializerSettings());

return File(download , "application/json", "file.json");
}

如果您使用 .AddJsonOptions()Startup 中设置特殊的 json 序列化器设置,您希望将它们用作 ASP.NET 框架使用它们在 Json 方法中。在 Controller 中注入(inject)MvcJsonOptions

IOptions<MvcJsonOptions> _options;

public YourController(IOptions<MvcJsonOptions> options)
{
_options = options;
}

并将设置传递给方法

public IActionResult Download()
{
var download = Serialize(_context.Users, _options.Value.SerializerSettings);

return File(download , "application/json", "file.json");
}

关于c# - 如何生成包含 JSON 结构的要下载的文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54543808/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com