如何在c#中将数据转换或序列化为Json格式?
Am使用以下代码将数据转换为Json,返回值为: “{\'BillNo\':18}”。但我想返回键和值对的值,比如:{“BillNo”:18}如何在c#中将数据转换或序列化为Json格式?,c#,.net,json,C#,.net,Json,Am使用以下代码将数据转换为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 billN
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}”;
log(JSON.parse(myJson))代码>很遗憾,这是不可能的。这是标准的C#字符串格式规则。
\“是双引号。请参阅转义序列:在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;
为什么不在BillNumber对象中使用BillNo是一个整数,因此它将被序列化为一个不带引号的整数。好吧,那么你在哪里看到“{\“BillNo\”:18}”-这是调试的结果还是打印出来的结果?因为如果调试的结果只是转义引号,那么实际值将是“本身”。无需重新编译JsonConvert.SerializeObject(新BillNumber{BillNo=5})
返回{“BillNo”:5}
。您可能被调试窗口中看到的内容弄糊涂了—看起来您可能正在双重序列化JSON。也就是说,返回的字符串在更高的代码级别上再次序列化为JSON,从而导致转义。如果您正在使用,请参阅。否则,请告诉我们您使用的框架以及如何返回JSON。为什么不可能?事实上,我敢打赌OP会混淆debug窗口中的value字段,该窗口显示\“
要使实际字符串能够在字符串中使用双引号,必须先使用反斜杠。是C#规范。仅以文本形式,即您在代码中键入的字符串。但我们根本不谈论这个。OP询问为什么字符串值包含转义字符?很可能没有,OP正在调试窗口中检查值。在控制台上打印或写入文件,结果将是{“BillNo”:18}
我们所说的字符串。见问题。问题是-如何返回JSON字符串结果而不使用反斜杠。在JSON中传递整数不需要转换为文本<代码>{“BillNo”:18}
有效,OP询问转义字符。我想返回如下值:{“BillNo”:18}
"[{"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"}]"