JsonConvert返回空对象数组[{} {} {} {}]

时间:2013-11-07 19:08:35

标签: c# json linq wcf

我有一个简单的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 Developer将结果显示为“[{},{},{},{}]”但是如果我在调试时检查对象并在序列化之前,我可以看到所有ProductView对象及其相关属性

我知道我错过了一些简单的东西,我只是因为我的生活无法弄清楚... 任何帮助表示赞赏!

1 个答案:

答案 0 :(得分:2)

我猜测通过向您的班级添加[DataContract],您告诉json转换器它应该只关注具有[DataMember]属性的属性。由于您的所有属性都没有该属性,因此没有一个属性被序列化。

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