在C#中将JSON转换为数据集时出错

时间:2019-04-26 19:04:49

标签: c# json json.net

我正在使用JSON.Net来检索以下JSON格式的数据。

  

{“ Pagination”:{“ CurrentPage”:1,“ PageSize”:20,“ NumberOfPages”:3796,“ totalCount”:75913},“ Data”:[{“ SalesOrderNumber”:“ 003119”},{ “ SalesOrderNumber”:“ 003336”},{“ SalesOrderNumber”:“ 003410”},{“ SalesOrderNumber”:“ 003520”}]}

我可以成功检索数据并将其加载到C#文本框中。我要做的是将其加载到数据集中。我正在使用以下语句尝试加载数据集。

DataSet dsSalesOrders = JsonConvert.DeserializeObject<DataSet>(response.Content);

运行程序时出现以下错误

  

Newtonsoft.Json.JsonSerializationException:'读取DataTable时出现意外的JSON令牌。应该是StartArray,得到了StartObject。路径“分页”,第1行,位置15。”

这是我第一次使用JSON,如何解决此问题?

谢谢

2 个答案:

答案 0 :(得分:2)

尝试将此课程作为接收课程

public class YourMainObject
{
    public Pagination Pagination { get; set; }
    public Datum[] Data { get; set; }
}

public class Pagination
{
    public int CurrentPage { get; set; }
    public int PageSize { get; set; }
    public int NumberOfPages { get; set; }
    public int totalCount { get; set; }
}

public class Datum
{
    public string SalesOrderNumber { get; set; }
}

然后反序列化,然后分别填充数据集。

PS:在下面的讨论中,其他程序员建议您可能真的不需要使用数据集

答案 1 :(得分:0)

液体核心

感谢类定义,这就是我想要的。

至于我对数据集注释的讨论,它们是正确的,我不需要数据集。我主要使用SQL数据,因此我习惯于使用WinForms项目中的数据集来呈现我的数据。加载Dataum类后,我便将数据源分配给了数组。