[英]Parsing string returned from web method
我是第一次開發Windows Phone 8 C#應用程序。
我正在調用在aspx代碼隱藏類中定義的Web方法。
我如何解析返回的對象?
這是我的返回對象:
public class ResponseObject
{
public bool Success;
}
這是我的測試網絡方法:
[WebMethod]
public static ResponseObject Test(string username, string password)
{
ResponseObject responseObject = new ResponseObject();
responseObject.Success= true;
return responseObject;
}
這是我的主叫客戶代碼:
private async void LogIn()
{
using (var client = new HttpClient())
{
var resp = await client.PostAsJsonAsync("http://my ip/UserManagement/Login.aspx/Test",
new { username = "", password = "" });
var str = await resp.Content.ReadAsStringAsync();
}
}
str的值如下所示:
{"d":{"__type":"LogIn+ResponseObject","Success":true}}
我想我可以自己解析該字符串,但是JSON是否提供了一種更干凈的方法?
使用Json.Net
var str = await resp.Content.ReadAsStringAsync();
var jsonObj = JsonConvert.DeserializeObject<Response>(str);
public class D
{
public string __type { get; set; }
public bool Success { get; set; }
}
public class Response
{
public D d { get; set; }
}
對於將來的用例,您可以定義自己的擴展方法
public static class SOExtensions
{
public static async Task<T> ReadAsJsonAsync<T>(this HttpContent content)
{
var json = await content.ReadAsStringAsync();
return JsonConvert.DeserializeObject<T>(json);
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.