Myweb-api
はユーザー オブジェクトを返します。そのオブジェクトにはDateTime
プロパティがあります。アプリケーションでそれを読んでいるときに、DateTime を表す文字列が有効ではないため、エラーが発生します。\Date ...
{System.Runtime.Serialization.SerializationException: User 型のオブジェクトを逆シリアル化中にエラーが発生しました。DateTime コンテンツ '1984-10-02T01:00:00' は、JSON に必要な '/Date(' で始まり、')/' で終わるわけではありません。--->
public static async Task<User> GetUser(string email)
{
try
{
using (HttpClient client = new HttpClient())
{
HttpResponseMessage response = await client.GetAsync(url + "?email="+email);
if (response.IsSuccessStatusCode)
{
string content = await response.Content.ReadAsStringAsync();
User user = DataService.Deserialize<User>(content);
return user;
}
return null;
}
}
catch (Exception ex)
{
return null;
}
}
これは、逆シリアル化に使用する方法です。
public static T Deserialize<T>(string json) {
try
{
var _Bytes = Encoding.Unicode.GetBytes(json);
using (MemoryStream _Stream = new MemoryStream(_Bytes))
{
var _Serializer = new DataContractJsonSerializer(typeof(T));
return (T)_Serializer.ReadObject(_Stream);
}
}
catch (Exception ex)
{
throw ex;
}
}