JSON オブジェクトを自分のオブジェクトに逆シリアル化する際に問題が発生しています。特定のプロパティに対して null 許容値を取得しています。
問題: 完全なオブジェクトが null 可能
この場合、すべてのオブジェクト プロパティを null 値にしています。
JSON の例:
{
"message": {
"ts": "11/10/13 15:07:16",
"content": "vivo-2482573605"
}
}
リクエストを行い、逆シリアル化されたオブジェクトを返すコード:
public T Request<T>(IEndPoint jsonObject)
{
string endPoint;
string requestType;
endPoint = jsonObject.ToURL();
requestType = jsonObject.RequestType;
string jsonData = jsonObject.Json;
HttpWebRequest request = initRequest(URL + endPoint, requestType);
if (!string.IsNullOrWhiteSpace(jsonData))
{
using (var writeStream = new StreamWriter(request.GetRequestStream()))
{
writeStream.Write(jsonData);
}
}
try
{
var httpResponse = (HttpWebResponse)request.GetResponse();
using (var streamReader = new StreamReader(httpResponse.GetResponseStream()))
{
string jsonResponse = streamReader.ReadToEnd();
if (!string.IsNullOrWhiteSpace(jsonResponse))
{
T value = Util.DeserializeJsonObject<T>(jsonResponse);
return value;
}
object ret = null;
return (T) ret;
}
}
catch (WebException we)
{
object a = null;
return (T) a;
}
catch (HttpResponseException hre)
{
object a = null;
return (T)a;
}
}
デシリアライズ方法:
public static T DeserializeJsonObject<T>(string json)
{
T deserizadedJson = new JavaScriptSerializer().Deserialize<T>(json);
return deserizadedJson;
}
編集:
すべてのプロパティが null のオブジェクトを取得しています。このプロパティには、JSON オブジェクトの値が設定されているはずです。
私のオブジェクト:
[DataContract]
class Message
{
[DataMember]
public string ts { get; set; }
[DataMember]
public string content { get; set; }
}