WCF Rest服务接收对象为null

我有WCFrest服务,期望对象作为输入。

[WebInvoke(Method = "POST", UriTemplate = "SaveItem", ResponseFormat = WebMessageFormat.Json, RequestFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.Wrapped)] [OperationContract] public string SaveItem(Item item) { string retValue; using (var business = new ItemBusiness()) { retValue = business.SaveItem(item).ToString(); } return retValue; } 

项目类如下所示。

  [DataContract] public class Item { [DataMember] public string UserId { get; set; } [DataMember] public string Name { get; set; } [DataMember] public string Description { get; set; } [DataMember] public string Cost { get; set; } //[DataMember] //public string AvailableQunatity { get; set; } [DataMember] public string IsNegotiable { get; set; } [DataMember] public string LocationLat { get; set; } [DataMember] public string LocationLong { get; set; } [DataMember] public string Condition { get; set; } [DataMember] public string DeliveryType { get; set; } [DataMember] public string PostalCode { get; set; } [DataMember] public string Category { get; set; } } 

我从android应用程序传递json。

{ “用户ID”: “1”, “名称”: “1”, “描述”: “1”, “成本”: “1”, “IsNegotiable”: “1”, “LocationLat”: “1”,” LocationLong “:” 1″ , “条件”: “1”, “DeliveryType”: “1”, “邮编”: “1”, “类别”: “13”}

但是WCF方法将Item作为null而不确定原因。

任何帮助,将不胜感激。

谢谢。

编辑

终于搞定了……改变了WebMessageBodyStyle.WrappedWebMessageBodyStyle.Bare

感谢您分享您的解决方案。 我需要WebMessageBodyStyle.Bare位,但我的另一个问题是我的JSON被包装在父节点“node”中,对于其他网站上的建议如下:

 Not Working --> {"MethodParamName":[{"prop1":"value1","prop2":"value2"}]} 

但我的JSON始终为空。 然而,一旦我删除了我的JSON的“父节点”,我的WCF最终可以读取该对象:

 Working --> {"prop1":"value1","prop2":"value2"}