JSON Анализ строки и показ обратной косой черты - PullRequest
0 голосов
/ 07 февраля 2020

Я проводил некоторые исследования о том, как сериализовать строку данных в json. Приведенный ниже код работает и отображается в моем API, но с обратной косой чертой. Я провел некоторое исследование и знаю, что косые черты происходят, потому что я сериализирую данные дважды. То, что я не знаю, как решить эту проблему. Я использую MVC и вызываю API через jquery.

Вот код, который создает 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}]"

Я хотел бы, чтобы результаты возвращались следующим образом:

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

Я вызываю API с кодом ниже

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

            });

1 Ответ

0 голосов
/ 13 марта 2020

Я создал новый вызов 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);
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...