如何在c#中将数据转换或序列化为Json格式?

时间:2016-03-02 10:33:11

标签: c# .net json

使用以下代码将数据转换为Json并返回值为: " {\" BillNo \" 18}" 。但是我希望为键值和值对返回值类似:{" BillNo":18}

      public String Get()

       {
         var MaxBillNo = db.Billings.Max(b => b.BillNo.Substring(9, 5));
         int i = Int32.Parse(MaxBillNo);
         BillNumber billNumber = new BillNumber();
         billNumber.BillNo = i;
         string json = JsonConvert.SerializeObject(billNumber);
         return json;
       }

3 个答案:

答案 0 :(得分:0)

"{\"BillNo\":18}"是有效的json字符串将在客户端的javascript中解析但不是{"BillNo":18}

var myJson = "{\"BillNo\":18}";
console.log(JSON.parse(myJson));

答案 1 :(得分:0)

不幸的是,这是不可能的。它是标准的C#字符串格式规则。 \“是双引号。请参阅转义序列:https://msdn.microsoft.com/en-us/library/h21280bw.aspx

答案 2 :(得分:0)

在C#中是可能的,但为此必须将对象列表传递给serialize方法。以下是下面给出的示例,希望对您有所帮助。

    SmaccLib smacclib = new SmaccLib();
    smaccDate = smacclib.Date_SaveFormat(date);

    List<EmployeeAbsents> listEmployeeAbsents = _hrManager.EmployeeAbsentManager.SelectEmployeeAbsentsByDate(smaccDate, rowIndex);

    if (listEmployeeAbsents != null && listEmployeeAbsents.Count > 0)
    {
        return JsonConvert.SerializeObject(listEmployeeAbsents);
    }
    return string.Empty;

结果会是这样的。

"[{"EmployeeAbsentID":"81e930bb-a38e-4b85-ba6c-9cbd6e706872","EmployeeCode":"20","EmployeeName":"Bilal","AbsentDate":"11/09/2016","AbsentTypeCode":"10","AbsentTypeName":"Casual","IsDeductable":true,"Remarks":"re","EntryFrom":0,"RowIndex":4,"OperatingUserID":0,"RecordTimeStamp":"2016-02-19T13:20:44.417"}]"