【问题标题】:How to convert a variable to a JSON using ASP.Net MVC?如何使用 ASP.Net MVC 将变量转换为 JSON?
【发布时间】:2019-05-14 02:26:50
【问题描述】:

我尝试将变量转换为 JSON 字符串,但输出不符合我的要求。

我已经尝试过下面的代码,但输出不是 JSON 格式。

using (var reader = new StreamReader("C:\\somedirectory\\Payout.csv"))
            using (var csv = new CsvReader(reader))
            {
                csv.Configuration.RegisterClassMap<FundTransferMap>();
                var list = csv.GetRecords<FundTransfer>().ToList().Dump();
                var viewModel = new FundTransfer();
                var serializer = new JavaScriptSerializer();
                var json = serializer.Serialize(list);
                Response.Write(json);
                return View();
            }

这段代码在Response.Write上的输出是这样的

[Count: 1]
-- MVC.Models.FundTransfer State -- 
    senderRefId: TRANSFER-0001
    tranRequestDate: 2018-08-10T08:40:45.897
    particulars: particulars
    sender: 
        [Count: 1]
        -- MVC.Models.Sender State -- 
            name: Name1
            address: 
                [Count: 1]
                -- MVC.Models.Address State -- 
                    line1: line1
                    line2: line2
                    city: city
                    province: province
                    zipcode: zipcode
                    country: Country

但我希望它是这样的

{
    "senderRefId": "TRANSFER-0001",
    "tranRequestDate":"2018-08-10T08:40:45.897",
    "particulars":"particulars",
    "sender": {
      "name":"Name1",
      "address": {
            "line1":"Line1",
            "line2":"Line2",
            "city":"city",
            "province":"province",
            "zipCode":"zipcode",
            "country":"country"
          }
    }
  }

【问题讨论】:

  • 设置响应ContentTypeContentType = "application/json";
  • 你试过调试吗?在Response.Write(json); 调用之前的json 变量中有什么?
  • 是的,json 变量的数据就在上面显示的 json 文本之前。第二组代码。带有[Count:1]的那个

标签: c# asp.net json asp.net-mvc csvhelper


【解决方案1】:

试试这个:

使用 JSON.Net DLL (Newtonsoft) 将 DataTable 转换为 JSON。

现在在这个方法中,我们将使用 Newtonsoft DLL 将 C# 数据表转换为 JSON。

为此,您首先需要下载 JSON.Net DLL。您可以从 Nuget.org 下载它,然后将 Newtonsoft.JSON 命名空间导入我们的页面,如以下代码所示。 JSON.NET 是适用于 .NET 的流行的高性能 JSON 框架。

【讨论】:

    【解决方案2】:

    感谢@kwingkwing.ko。我已经使用此代码解决了我的问题

    var json = JsonConvert.SerializeObject(csv.GetRecords<FundTransfer>());
    Response.Write(json);
    

    这将我的对象转换为 JSON。

    【讨论】:

    • 太棒了!快乐的编码兄弟!
    猜你喜欢
    • 2011-02-20
    • 2023-03-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-23
    • 2019-08-28
    • 1970-01-01
    相关资源
    最近更新 更多