反序列化JSON对象会引发Newtonsoft.Json.JsonSerializationException

Yar*_*Yar 7 c# json

我有这个Json对象:

{
   "Sheet1": [
      {
         "one": 1,
         "two": 18
      },
      {
         "one": 16,
         "two": 33
      },
      {
         "one": 17,
         "two": 34
      }
   ]
}
Run Code Online (Sandbox Code Playgroud)

我正在尝试使用以下模型反序列化它:

public class Sheets
{
    [JsonProperty("Sheet1")]
    public Sheet Sheet { get; set; }
}

public class Sheet
{
    public List<Row> Rows { get; set; }
}

public class Row
{
    [JsonProperty("one")]
    public string Col1 { get; set; }

    [JsonProperty("two")]
    public string Col2 { get; set; }
}

var res = JsonConvert.DeserializeObject<Sheets>(result);
Run Code Online (Sandbox Code Playgroud)

但我得到这个例外:

Newtonsoft.Json.dll中发生了类型为'Newtonsoft.Json.JsonSerializationException'的未处理异常

附加信息:无法将当前JSON数组(例如[1,2,3])反序列化为类型'ExcelConsoleApp.Sheet',因为该类型需要JSON对象(例如{“ name”:“ value”})才能正确反序列化。

我究竟做错了什么?有什么想法吗?

编辑

一种可能的解决方案是使用

dynamic dynamicObject = JsonConvert.DeserializeObject(result);
Run Code Online (Sandbox Code Playgroud)

但我想直接将其反序列化到模型中。

Ore*_*aki 3

Sheet1不是Sheet 类型,而是Rows 列表。这可以通过括号来识别。
即,这是Collection"Sheet1": [的明确标志,而不是由 标识的对象。{

将工作表更改为以下内容:

public class Sheets
{
    [JsonProperty("Sheet1")]
    public List<Row> Sheet { get; set; }
}
Run Code Online (Sandbox Code Playgroud)