簡體   English   中英

解析從Web方法返回的字符串

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM