2016-03-02 79 views
0

使用以下代碼將數據轉換爲Json並返回值爲: 「{\」BillNo \「:18}」「。但我想對鍵值對返回值一樣:{「BillNo」:18}如何將數據轉換或序列化爲C#中的Json格式?

 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; 
     } 
+0

你爲什麼不使用[Newtonsoft(http://www.newtonsoft.com/json) –

+0

BillNo是BillNumber對象中的整數,因此它將被序列化爲沒有引號的整數。 –

+4

好的,你在哪裏看到「{\」BillNo \「:18}」 - 是從調試還是實際打印?因爲調試只是引用被轉義,所以實際的值將是「本身。」 –

回答

0

"{\"BillNo\":18}"是有效的JSON字符串將在JavaScript解析在客戶端而不是{"BillNo":18}

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

+0

在Json中傳遞整數不需要轉換爲文本'{「BillNo」:18}'是有效的,OP是詢問轉義字符 –

+0

我想返回值如:{「BillNo」:18} – Mani

0

不幸的是,這是不可能的。它是標準的C#字符串格式化規則。 \」是一個雙引號見轉義序列:。https://msdn.microsoft.com/en-us/library/h21280bw.aspx

+0

爲什麼不可能?事實上,我敢打賭OP會在調試窗口中混淆顯示'\「的值字段的實際字符串 –

+0

爲了能夠在字符串中使用雙引號,您必須先使用反斜槓。是C#規範。 –

+0

只是在文字中,即你在你的代碼中輸入的字符串,但我們並不是在談論這個,OP是問爲什麼字符串值包含轉義字符?很可能它沒有,並且OP正在檢查值在調試窗口中,在控制檯上打印或寫入一個文件,結果將是'{「BillNo」:18}' –

0

有可能在C#但是,你必須傳遞對象序列化方法的說明這裏是下面給出的樣本,希望所以這將是對你有所幫助。

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"}]" 
相關問題