首页 > 解决方案 > 在 C# 中将 JSON 转换为数据集时出错

问题描述

我正在使用 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,我该如何解决这个问题?

谢谢

标签: c#jsonjson.net

解决方案


尝试将此类作为接收类

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:在下面的讨论中,其他程序员建议您可能不需要使用 DataSet


推荐阅读