c# - List<> 无法序列化为 JSON

标签 c# asp.net-mvc json

我正在使用以下 C# class在我的 ASP.NET MVC 项目中:

public class ZoneModel {
    public int Id { get; set; }
    public int Number { get; set; }
    public string Name { get; set; }
    public bool LineFault { get; set; }
    public bool Sprinkler { get; set; }
    public int Resistance { get; set; }
    public string ZoneVersion { get; set; }
    List<DetectorModel> Detectors { get; set; }
}

在我的一个 Controller 中s,我有一个Action返回类型为 JsonResult ,从中我返回 ZoneModel 的列表对象(从数据库填充)。 Detectors属性包含数据,但是当我使用 return Json(viewModel); 从 Controller 返回列表时,序列化响应中缺少检测器列表。

为什么是Detectors属性未序列化为 JSON?

最佳答案

只是为了澄清我的评论。属性需要声明为 Public 成员,以便通过 JSON.NET 或内置 JavaScriptSerializer 进行序列化。

public class ZoneModel {
    public int Id { get; set; }
    public int Number { get; set; }
    public string Name { get; set; }
    public bool LineFault { get; set; }
    public bool Sprinkler { get; set; }
    public int Resistance { get; set; }
    public string ZoneVersion { get; set; }

    // this property will not be serialized since it is private (by default)
    List<DetectorModel> Detectors { get; set; }
}

关于c# - List<> 无法序列化为 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16358934/

相关文章:

c# - 是否可以在插入/更新之前在 POCO 中执行操作?

c# - 是否可以从外部文件初始化 ConfigurationSection?

c# - 保持源代码关闭,单元测试更接近

asp.net - 如何使自定义错误页面在 ASP.NET MVC 4 中工作

.net - Asp.net MVC json或Json.net?

javascript - Node.js - 将平面 json 转换为不带 'parent' ,'child' 属性的分层 json

c# - C#中Spliterator的等价物是什么?

asp.net-mvc - GeoJSON .NET 与 ASP.NET MVC 中的谷歌地图

javascript - 在 jquery 中按时间戳对数组进行排序

javascript - Django(REST 框架)到 JSON。如何在 JavaScript 中通过我的 API 获取数据?