WCF Json服务参数为空

时间:2013-12-01 01:06:59

标签: c# json wcf rest null

我已经找到了一些好的线程,但没有解决我的问题。如果有人有任何想法,我愿意接受建议!谢谢。

我正在使用WCF构建一个REST JSON服务,该服务将接受一个Member对象并将其插入到我的数据库中。但是,当使用Fiddler发送到我的服务时,参数似乎都为null。如果我在服务代码中发送了值,则会将它们正确插入到数据库中。

[OperationContract]
[WebInvoke(Method = "PUT", RequestFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.Wrapped, UriTemplate = "PutMember")]
int PutMember(Member member1);

我的小提琴手是http://127.0.0.1:81/Service1.svc/PutMember的一个帖子,带有这个标题:

User-Agent: Fiddler
Host: 127.0.0.1:81
Content-Length: 245
Content-Type: application/json

身体:

{"member1":
[{
"first_name":"shaw",
"last_name":"levin",
"gender":0,
"Grad_Year":2015,
"personality":3,
"campus":1,
"social":0,
"cleaning":1,
"diet":1,
"religious":3,
"roomamate_prefs":"Hello",
"hs_engagement":"World"
}]}

数据合约如下:

[DataMember]
public int Primary_ID
{
    get { return _id; }
    set { _id = value; }
}

[DataMember]
public string First_Name
{
    get { return _first; }
    set { _first = value; }
}

2 个答案:

答案 0 :(得分:2)

JSON属性和C#属性的大小写必须匹配,或者您必须在属性中指定另一个大小写。

[DataMember]
public string first_name { get; set; }

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

答案 1 :(得分:1)

您正在发送数组而不是单个对象。尝试发送:

{"member1":
{
"first_name":"shaw",
"last_name":"levin",
"gender":0,
"Grad_Year":2015,
"personality":3,
"campus":1,
"social":0,
"cleaning":1,
"diet":1,
"religious":3,
"roomamate_prefs":"Hello",
"hs_engagement":"World"
}}