在我的WPF MVVM应用程序中,我从JSON格式的宁静WCF服务获取数据。 我正在使用JavaScriptSerializer对这些数据进行反序列化。但是如果有的话,这就无法处理null值。在这种情况下,我必须发送一些值而不是我不想发送的DBnull值。
WCF服务:
[OperationContract]
[WebInvoke
(
Method = "GET",
ResponseFormat = WebMessageFormat.Json,
UriTemplate = "ReportEmployee/All"
)
]
dcReportEmployee[] GetReportEmployee();
其中dcReportEmployee是datacontract
[DataContract]
public class dcReportEmployee
{
[DataMember]
public string Name { get; set; }
[DataMember]
public Int32 Status { get; set; }
}
在WPF应用程序中:
string sUrl = "LocalHostURL";
System.Net.WebRequest request = System.Net.HttpWebRequest.Create(sUrl);
request.Method = "GET";
request.UseDefaultCredentials = true;
request.ContentLength = 0;
System.Net.HttpWebResponse response = request.GetResponse() as System.Net.HttpWebResponse;
Stream objResponseStream = response.GetResponseStream();
StreamReader reader = new StreamReader(objResponseStream);
string objResponseString = reader.ReadToEnd();
response.Close();
JavaScriptSerializer objJsonserialiser = new JavaScriptSerializer();
T[] arrResult = objJsonserialiser.Deserialize<T[]>(objResponseString);
如果objResponseString包含任何空值,则其失败。我本可以发送一些null值的替换,但我不希望这样。
有没有想过这个?
答案 0 :(得分:0)
使用Newtonsoft Library进行序列化。