我正试图为WebApi构建一些分页我写作 我需要返回所有记录的总数以及JSON中的请求显示量。
修改
好的,所以带上你的adadce onbaord,我序列化我的对象,但我仍然得到黑色斜杠。
"[
{
\"RowNumber\": 1,
\"TotalRows\": 10,
\"TotalDisplayRows\": 10
\"Sender\": \"MNBLGB2L\"
},
{
\"RowNumber\": 2,
\"TotalRows\": 10,
\"TotalDisplayRows\": 10
},
{
\"RowNumber\": 3,
\"TotalRows\": 10,
\"TotalDisplayRows\": 10
},
{
\"RowNumber\": 4,
\"TotalRows\": 10,
\"TotalDisplayRows\": 10
},
{
\"RowNumber\": 5,
\"TotalRows\": 10,
\"TotalDisplayRows\": 10
}
]"
创建此代码的代码是:
List<Summary> results = MtFacade.GetSummary(query);
string jsonData = JsonConvert.SerializeObject(results);
return jsonData;
摘要类是:
[Serializable]
public class Summary
{
public int RowNumber { get; set; }
public int TotalRows { get; set; }
public int TotalDisplayRows { get; set; }
}
因此,同时使用Javascript序列化程序和JSON会产生反斜杠:
***编辑****
GetSummary位于我的业务层,它是数据层的接口:
public static List<Summary> GetSummary(string query)
{
return MessageRepository.GetSummary(query);
}
这是界面:
List<Summary> GetSummary(string query);
在数据层中使用,利用了精巧的:
public List<Summary> GetSummary(string query)
{
using (var block = new TransactionBlock())
{
var results =
TransactionBlock.Connection.Query<Summary>(query, transaction: TransactionBlock.Transaction)
.ToList();
block.Commit();
return results;
}
}
答案 0 :(得分:3)
你不应该自己创建你的json。您应该让JSON.net通过将对象传递给您来完成工作。
负责验证,并且您正在使用StringBuilder
。
创建具有必要属性的类,并使用.JsonConvert(myObj);
答案 1 :(得分:1)
您正在创建一个JSON并将其再次序列化为JSON。
至少,当你只是想要JSON时,这是一个坏主意。
您有两种选择:
JsonConvert
创建一个对象并将其序列化为JSON。答案 2 :(得分:1)
创建一个用于存储数据的类,然后对其进行序列化。
public class Summary
{
public int RowNumber {get; set;}
public int TotalRows {get; set;}
public int TotalDisplayRows {get; set;}
}
Summary pt=new Summary();
pt.TotalRecords=10;
pt.TotalDisplayRecords=10;
pt.RowNumber=1;
string json=JsonConvert.SerializeObject(pt);