c# - Json.net 反序列化返回一个空对象

标签 c# json json.net

我正在使用下面的代码进行序列化。

var json = JsonConvert.SerializeObject(new { summary = summary });

summarySplunkDataModel 类型的自定义对象:

public class SplunkDataModel
{
    public SplunkDataModel() {}

    public string Category { get; set; }
    public int FailureCount { get; set; }
    public Dictionary<string, SplunkError> FailureEntity { get; set; }
    public Dictionary<string, string> JobInfo { get; set; }
    public string JobStatus { get; set; }
    public int SuccessCount { get; set; }
    public List<string> SuccessEntity { get; set; }
    public int TotalCount { get; set; }
}

以下 JSON 中的序列化结果:

{
  "summary": {
    "Category": "category",
    "JobStatus": "Failure",
    "JobInfo": {
      "Course processing failed": "" 
    },
    "TotalCount": 0,
    "SuccessCount": 0,
    "FailureCount": 0,
    "FailureEntity": {},
    "SuccessEntity": []
  }
}

现在,出于单元测试的目的,我需要反序列化它,但下面的代码返回一个具有空值的对象。我哪里错了?

var deserialized = JsonConvert.DeserializeObject<SplunkDataModel>(contents);

最佳答案

在我这边,这是因为我的属性没有public setter。 而不是拥有

public class MyClass
{        
    public int FileId { get; }
}

我应该有

public class MyClass
{        
    public int FileId { get; set; }
}

愚蠢的错误让我花了几个小时......

关于c# - Json.net 反序列化返回一个空对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43399475/

相关文章:

c# - 线程同步和中止

c# - 使用 JSON.NET 读取动态属性名称

c# - 如何从 XML 架构创建 SQL Server 表架构? (使用 .NET 和 Visual Studio 2008)

c# - 避免在一个 block 出现故障时关闭整个数据流网络

c# - 为单元测试模拟对象的实例化

mysql - 如何使用 json 将元组数组传递给 sql 语句

json - Postgresql JSONB 数据上的 Spark SQL

json - Jmeter断言返回结果不为空或为空

json.net - 用于将 json 模式转换为示例 JSON 的 C# 库

c# - 使用 Newtonsoft json.net 在 C# 中反序列化 JSON 对象