JSON数据结构辅助

时间:2014-04-25 13:51:25

标签: c# json json.net

我正试图为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会产生反斜杠:

screen grab within VS

***编辑****

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

3 个答案:

答案 0 :(得分:3)

你不应该自己创建你的json。您应该让JSON.net通过将对象传递给您来完成工作。

负责验证,并且您正在使用StringBuilder

创建具有必要属性的类,并使用.JsonConvert(myObj);

对其进行序列化

答案 1 :(得分:1)

您正在创建一个JSON并将其再次序列化为JSON。

至少,当你只是想要JSON时,这是一个坏主意。

您有两种选择:

  1. 自己继续生成JSON。
  2. 使用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);