3
WinRT에서 JSON을 deserialize하고 싶습니다. 예를 들어 StackExchange API 2.1을 사용하려고합니다. \b\0\0\0\0\0\0�ێ���_E�E�FfwW\r,���...
:에서 responseText에 나는이 같은 문자를 얻을 내가 잘못 뭐하는 거지JSON Api WinRT에서 개체 역 직렬화
[DataContract]
class Answer
{
[DataMember(Name = "question_id")]
public int QuestionId { get; set; }
[DataMember(Name = "answer_id")]
public int AnswerId { get; set; }
[DataMember(Name = "creation_date")]
public int CreationDate { get; set; }
[DataMember(Name = "last_edit_date")]
public int LastEditDate { get; set; }
[DataMember(Name = "last_activity_date")]
public int LastActivityDate { get; set; }
[DataMember(Name = "score")]
public int Score { get; set; }
[DataMember(Name = "community_owned_date")]
public int CommunityOwnedDate { get; set; }
[DataMember(Name = "is_accepted")]
public bool IsAccepted { get; set; }
[DataMember(Name = "owner")]
public Owner Owner { get; set; }
}
[DataContract]
class Owner
{
[DataMember(Name = "user_id")]
public int UserId { get; set; }
[DataMember(Name = "display_name")]
public string DisplayName { get; set; }
[DataMember(Name = "reputation")]
public int Reputation { get; set; }
[DataMember(Name = "user_type")]
public string UserType { get; set; }
[DataMember(Name = "profile_image")]
public string ProfileImage { get; set; }
[DataMember(Name = "link")]
public string Link { get; set; }
[DataMember(Name = "accept_rate")]
public int? AcceptRate { get; set; }
}
[DataContract]
class JsonResponse
{
[DataMember(Name = "items")]
public IList<Answer> Answers { get; set; }
[DataMember(Name = "quota_remaining")]
public int QuotaRemaining { get; set; }
[DataMember(Name = "quota_max")]
public int QuotaMax { get; set; }
[DataMember(Name = "has_more")]
public bool HasMore { get; set; }
}
:
public static async Task<string> GetJsonString()
{
HttpClient client = new HttpClient();
string url = @"https://api.stackexchange.com/2.1/answers?fromdate=1349913600&order=desc&min=20&sort=votes&site=stackoverflow";
HttpResponseMessage response = await client.GetAsync(url);
return await response.Content.ReadAsStringAsync();
}
public static async void ParseJson()
{
string responseText = await GetJsonString();
DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(JsonResponse));
JsonResponse root;
using (MemoryStream stream = new MemoryStream(Encoding.Unicode.GetBytes(responseText)))
{
root = serializer.ReadObject(stream) as JsonResponse;
}
}
이러한 클래스 :
는이 같은 방법이 있나요?
이 문제를 일으키는 원인이 될 수 있습니다. 나는 비슷한 코드를 가지고 있으며 잘 작동한다. – Mayank
한가지 차이점은'Encoding.Unicode.GetBytes (responseText)'를 먼저 생성하고이를 'MemoryStream'에 전달한다는 것이지만 생각하지 않는다. 그게 어떤 차이가있을거야 – Mayank