我已经找到了一些好的线程,但没有解决我的问题。如果有人有任何想法,我愿意接受建议!谢谢。
我正在使用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; }
}
答案 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"
}}