大家好我是JSON和WCF服务的新手。我试图使用JSON调用wcf服务,我的参数是我的数据合同类之一。
这是我的数据合同类。
namespace Employee.Services.DataContracts
{
using System;
using System.Runtime.Serialization;
[DataContract]
public class ReqDataContract
{
[DataMember]
public long Type { get; set; }
[DataMember]
public string ID { get; set; }
[DataMember]
public DateTime? FDate { get; set; }
[DataMember]
public long? UserID { get; set; }
}
}
这是myWCF服务功能
public void SaveRequ(ReqDataContract request)
{
var req=request;
}
这是接口实现
[OperationContract]
[WebInvoke(Method = "POST", BodyStyle = WebMessageBodyStyle.Wrapped, ResponseFormat = WebMessageFormat.Json)]
[return: MessageParameter(Name = "ReqData")]
void SaveRequ(ReqDataContract request);
.js文件(AJAX调用)
var selection = "{ \"Type\": 55,\"ID\":'test@yahoo.com' ,\"FDate\":" + null + " ,\"UserID\": 'ASDAS'}";
searchData = searchData + (searchData != '' ? "," : "") + selection;
if (searchData != null) {
searchData = "[" + searchData + "]";
}
var searchJSON = jQuery.toJSON(eval("(" + searchData + ")"));
var strJSON = searchJSON.toString();
params = '{\"request\":' + strJSON + '}';
$.ajax({
async: false, //To perform synchronize operation to get status
type: "POST",
url: servicePath + "SaveRequ",
dataType: "json",
contentType: "application/json; charset=utf-8",
data: params,
processData: true,
success: function (data) {
// alert(data.ReqData);
},
error: function (xhr, result, id) { alert(xhr.responseText); }
});
一切正常但问题是我在请求参数中得到所有值null ...我错过了什么?请帮助我。
答案 0 :(得分:3)
这是否得到解决?如果没有,为fdate尝试一个有效值而不是NULL,看看是否有效。 JSON.NET可能是将JSON处理为对象的更好的解决方案。