gpt4 book ai didi

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

转载 作者:太空狗 更新时间:2023-10-29 20:30:05 26 4
gpt4 key购买 nike

我有这个 Json 对象:

{
   "Sheet1": [
      {
         "one": 1,
         "two": 18
      },
      {
         "one": 16,
         "two": 33
      },
      {
         "one": 17,
         "two": 34
      }
   ]
}

我正在尝试使用以下模型对其进行反序列化:

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

但我遇到了这个异常:

An unhandled exception of type 'Newtonsoft.Json.JsonSerializationException' occurred in Newtonsoft.Json.dll

Additional information: Cannot deserialize the current JSON array (e.g. [1,2,3]) into type 'ExcelConsoleApp.Sheet' because the type requires a JSON object (e.g. {"name":"value"}) to deserialize correctly.

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

编辑

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

dynamic dynamicObject = JsonConvert.DeserializeObject(result);

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

最佳答案

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

Sheets 更改为以下内容:

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

关于c# - 反序列化 JSON 对象会引发 Newtonsoft.Json.JsonSerializationException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37894177/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com