0

在我的 WPF MVVM 应用程序中,我从一个安静的 WCF 服务以 JSON 格式获取数据。我正在使用 JavaScriptSerializer 反序列化这些数据。但这无法处理空值(如果有)。在这种情况下,我必须发送一些值而不是我不想发送的 DBnull 值。

WCF 服务:

    [OperationContract]
    [WebInvoke
        (
            Method = "GET",
            ResponseFormat = WebMessageFormat.Json,
            UriTemplate = "ReportEmployee/All"

        )
    ]
    dcReportEmployee[] GetReportEmployee();

其中 dcReportEmployee 是数据合同

[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 包含任何空值,那么它会失败。我本可以发送一些空值替换,但我不希望这样。

对此有什么想法吗?

4

1 回答 1

0

使用 Newtonsoft 库进行序列化。

于 2013-11-27T10:24:53.843 回答