【问题标题】:JSON String parsed and showing back slashesJSON字符串解析并显示反斜杠
【发布时间】:2020-05-23 16:36:51
【问题描述】:

我一直在研究如何将数据表序列化为 json 字符串。下面的代码有效并显示在我的 API 中,但带有反斜杠。我做了一些研究并且知道斜线正在发生,因为我将数据序列化了两次。我不知道如何解决这个问题。我正在使用 MVC 并通过 jquery 调用 api。

这是创建 JSON 字符串的代码:

 _sql = "EXEC [dbo].[GetInvoiceAllTotals] @DateRange = '" + dateRange + "', @AcctGuid = '" + userAccountID.AccountGUID + "'";
        _table = Functions.DataTable(_sql);

        List<Dictionary<string, object>> lst = new List<Dictionary<string, object>>();
        Dictionary<string, object> item;
        foreach (DataRow row in _table.Rows)
        {
            item = new Dictionary<string, object>();
            foreach (DataColumn col in _table.Columns)
            {
                item.Add(col.ColumnName, (Convert.IsDBNull(row[col]) ? null : row[col]));
            }
            lst.Add(item);
        }

        return Newtonsoft.Json.JsonConvert.SerializeObject(lst);

结果如下:

"[{\"NoInvoices\":2,\"InvoiceTotals\":null,\"NoPayments\":0,\"PaymentTotals\":null}]"

我希望结果返回如下:

[ { “无发票”:2, “发票总额”:空, “无付款”:0, “支付总额”:空 } ]

我用下面的代码调用 API

            $.ajax({
                 url:"/api/InvoiceTotal/?dateRange=" + $('#dateFilterBy').val(),
                 dataType: 'json',
                 success: function (data) {
                      //handle the json response
                     console.log(data);
                },

            });

【问题讨论】:

  • “带有双反斜杠” - 我没有看到。
  • 你在哪里 JSON.parse 字符串?
  • 我在调用 API 的地方添加了代码
  • @SteveWolfe 可能与此 stackoverflow.com/questions/13833900/… 重复,否则可能会解决您的问题。
  • 我不确定你是否调用 JSON.parse()...

标签: jquery json model-view-controller


【解决方案1】:

我创建了一个新的 API 调用来解决这个问题。

        //Load dataTable from dateFilter
     $("#dateFilterBy").change(function () {
         listInvoices($('#dateFilterBy').val())

         $.ajax({
              url: 'Controllers/Invoices/',
              data: { dateRange: $('#dateFilterBy').val() }
           })
     });

    public ActionResult Index(string dateRange)
    {
        //var searchRange = dateRange;
        string userId = User.Identity.GetUserId();
        var userAccountID = _context.AccountProfile.Single(c => c.UserId == userId);
        var invoices = _context.InvoiceMaster.Where(c => c.AccountGUID == userAccountID.AccountGUID);
        List<InvoiceMaster> myInvoiceList = invoices.ToList();


        return View(invoices);
    }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-11-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多