如何在asp.net文件中下载json对象

问题描述

我上课

    class abc{
       [JsonPropertyName("firstName")]
       public string FirstName{get; set;}

       [JsonPropertyName("lastName")]
       public string LastName{get; set;} }

我正在为其中一种方法分配一些值。

     public void DownloadJson(){
     abc abcModel= new abc(){ FirstName="Tom",LastName="Torres"};

     var test = JsonConvert.SerializeObject(abcModel);
     }

我想将此测试对象保存(下载)到我的浏览器中的json文件中,而无需在新窗口中定向,只需简单地使用相同的DownloadJson()方法并在当前窗口中下载它即可。

解决方法

public ContentResult DownloadJson(){
 var builder = new StringBuilder();
 abc abcModel= new abc(){ FirstName="Tom",LastName="Torres"};
 var test = JsonConvert.SerializeObject(abcModel);
 builder.Append($"{test}")
 var fileName = "someName.JSON";

        Response.Headers.Add("Content-Disposition",$"attachment; filename=\"{fileName}\"");

        return Content(data,"text/plain");

 }

您是否尝试过返回ContentResult?

,

有效。

   fileName="xyz.json"

   byte[] bytes = System.Text.Encoding.UTF8.GetBytes(test);

   var content = new System.IO.MemoryStream(bytes);
   return File(content,"application/json",fileName);