如何将数据转换或序列化为C#中的Json格式?
使用以下代码将数据转换为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;
}
"{\"BillNo\":18}"
是有效的JSON字符串将在JavaScript解析在客户端而不是{"BillNo":18}
var myJson = "{\"BillNo\":18}";
console.log(JSON.parse(myJson));
在Json中传递整数不需要转换为文本'{“BillNo”:18}'是有效的,OP是询问转义字符 –
我想返回值如:{“BillNo”:18} – Mani
不幸的是,这是不可能的。它是标准的C#字符串格式化规则。 \”是一个双引号见转义序列:。https://msdn.microsoft.com/en-us/library/h21280bw.aspx
为什么不可能?事实上,我敢打赌OP会在调试窗口中混淆显示'\“的值字段的实际字符串 –
为了能够在字符串中使用双引号,您必须先使用反斜杠。是C#规范。 –
只是在文字中,即你在你的代码中输入的字符串,但我们并不是在谈论这个,OP是问为什么字符串值包含转义字符?很可能它没有,并且OP正在检查值在调试窗口中,在控制台上打印或写入一个文件,结果将是'{“BillNo”:18}' –
有可能在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"}]"
你为什么不使用[Newtonsoft(http://www.newtonsoft.com/json) –
BillNo是BillNumber对象中的整数,因此它将被序列化为没有引号的整数。 –
好的,你在哪里看到“{\”BillNo \“:18}” - 是从调试还是实际打印?因为调试只是引用被转义,所以实际的值将是“本身。” –