【问题标题】:Using WCF WebApi project produces JSON objects with incorrect property names使用 WCF WebApi 项目会生成属性名称不正确的 JSON 对象
【发布时间】:2011-10-18 05:05:08
【问题描述】:

我正在使用WCF Project on Codeplex(也称为WebAPI via Nuget)。我的简单服务可以很好地生成 XML,但会返回 JSON,其中每个属性都被命名为“item”。

[OperationContract]
[WebGet(UriTemplate = "all")]
public IQueryable<myobject> GetAllUsers() {
    return (from myobject u in MyDatabase.MyObjects
           select u).AsQueryable();
}

这是生成的 JSON。

[
  {
    "item":null,
    "item":641412011,
    "item":null,
    "item":"en_US",
    "item":"-7",
    "item":true
  }
]

返回值是一个公共类POCO。

[Serializable]
public class MyObject {
    [DataMember(Name = "id")]
    public int ID { get; set; }

    [DataMember(Name = "name")]
    public string Name { get; set; }

    [DataMember(Name = "first_name")]
    public string FirstName { get; set; }

    [DataMember(Name = "last_name")]
    public string LastName { get; set; }
}

有人看过吗?

【问题讨论】:

    标签: c# .net wcf json


    【解决方案1】:

    对不起。一些挖掘告诉我,我的 POCO 类中缺少 [DataContract] 属性。

    [Serializable]
    [DataContract]
    public class MyObject {
        [DataMember(Name = "id")]
        public int ID { get; set; }
    
        [DataMember(Name = "name")]
        public string Name { get; set; }
    
        [DataMember(Name = "first_name")]
        public string FirstName { get; set; }
    
        [DataMember(Name = "last_name")]
        public string LastName { get; set; }
    }
    

    【讨论】:

    • 我假设您使用的是 webapi 的预览版 5。您实际上可以删除 poco 类上的所有属性。查看 codeplex goo.gl/vYbEN 上的示例
    猜你喜欢
    • 2023-03-28
    • 2020-02-02
    • 2015-01-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多