- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我有这个 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/
我有一个像这样的json(删除了一部分,因为这不是问题) { "obj" : { "id" : "a18", "param" : { "syste
我正在尝试用一些优雅的异常处理来包装我的应用程序。当我的应用无法反序列化 JSON 时,我得到一个 JsonSerializationException,它有一个如下所示的消息: Error conv
使用NEST版本6.x和NEST.JSonSerializer版本6.x,我收到JSONSerialization异常,并使用inMemory elasticsearch进行单元测试。 我尝试使用Ne
我正在使用 NEST API (v0.12.0.0) 与 ElasticSearch (v1.0.1) 索引接口(interface),我在检索数据时刚刚开始收到 JsonSerializationE
我在这里错过了什么?为什么我会得到这个异常(exception)? Newtonsoft.Json.JsonSerializationException 未被用户代码处理,将值“[{"username
当我尝试检索包含在动态加载的 DLL 中找到其类型的实体列表的文档时,我得到一个 JSONSerialisation 异常,表明它无法在动态加载的 DLL 中找到类型DLL:无法加载程序集“Sandb
以下代码抛出 NewtonSoft.JSON.JsonSerializationException {“反序列化对象时出现意外标记:StartObject。第 1 行,位置 1884。”} Twitt
我有这个 Json 对象: { "Sheet1": [ { "one": 1, "two": 18 }, {
我有一个带有 EventHubTrigger 的 azure 函数: [FunctionName("TradesDataProcessStarterEh")] public stati
我正在从 Angularjs 服务调用 WebApi Controller Get 方法。 angular.service : app.service('MyService', ['$http', f
我有一个带有 EventHubTrigger 的 azure 函数: [FunctionName("TradesDataProcessStarterEh")] public stati
当反序列化缺少属性的 JSON 字符串时,我的类中的这些属性会填充为它们的默认值。我想更改 JsonSerializerSettings,这样,如果 JSON 中缺少某个属性且类中的属性不可为空,则会
我需要反序列化以下 JSON 字符串。 {"status":"success","data":[{"id":4,"domainTitle":"Java","isDeleted":true},{"id"
我有一个这样的 Json : [{"id":"54718","title":"Khaleda to visit China","corres":"Special Correspondent","det
我的代码有这个非常奇怪的问题,这是一个相当新的问题,考虑到半年前我还没有遇到过它。长话短说,我在 Xamarin 中制作了一个应用程序,并于大约半年前在所有 3 家商店(App Store、Googl
我已将 Xamarin Native UI 用于 Android 应用程序,并为 API 调用和数据创建了不同的类库使用 Newtonsoft.Json 反序列化 api 数据。 该类库 Target
我正在 Xamarin Android 中开发一个应用程序。我有一个闪屏,我在其中序列化一个类并使用 Intent 将其传递给 MainActivity。当我尝试在 MainActivity 中反序列
我正在使用 Unity3D 开发应用程序。 我使用我自己的实用程序 DLL 和一些类。 我已经工作了几个月,并且毫无问题地进行了很多构建/编译。 上周向 DLL 添加了一个新类,它在我的 PC 上运行
我尝试在数据库 SQL Server 2012 中使用 Newtonsoft.Json 版本“Newtonsoft.Json.10.0.3”将 DataTable 对象序列化为 Json。 该表有一个
这个问题在这里已经有了答案: JSON.NET Error Self referencing loop detected for type (26 个回答) 关闭2个月前。 我试图在 Include(
我是一名优秀的程序员,十分优秀!