【问题标题】:JsonConvert Returning Arrary of Empty Objects [{} {} {} {}]JsonConvert 返回空对象数组 [{} {} {} {}]
【发布时间】:2013-11-07 19:08:34
【问题描述】:

我有一个简单的 WCF 服务正在运行,它应该使用 LINQ to SQL 从 Northwind 数据库返回数据。我能够调用服务并返回结果就好了。当我稍微调整一下我的班级时,我得到了正确的行数,但都是空白{}。

这是我通过 LINQ 查询选择的类:

[DataContract]
public class ProductView {
    public int ProductID { get; set; }
    public string ProductName { get; set; }
    public short? UnitsInStock { get; set; }
    public ProductView() { }
    public ProductView(Product item) {
        ProductID = item.ProductID;
        ProductName = item.ProductName;
        UnitsInStock = item.UnitsInStock;
    }
}

这是我的 LINQ 查询:

using (NorthwindDataContext context = new NorthwindDataContext("BLAH")) {
   var products = from p in context.Products select new ProductView (p);
   return JsonConvert.SerializeObject(products);
}

Chrome 开发人员将返回的结果显示为“[{},{},{},{}]”但是如果我在调试时和序列化之前检查对象,我可以看到所有 ProductView 对象及其相关属性.

我知道我遗漏了一些简单的东西,我只是一辈子都想不通...... 任何帮助表示赞赏!

【问题讨论】:

    标签: c# json linq wcf


    【解决方案1】:

    我猜想通过将[DataContract] 添加到您的类中,您是在告诉json 转换器它应该只关注带有[DataMember] 属性的属性。由于您的所有属性都没有该属性,因此它们都不会被序列化。

    将 DataMember 属性添加到您的属性,或从您的类中删除 DataContract 属性。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-09-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-02
      相关资源
      最近更新 更多