在 C# Xamarin Forms 中获取 JSON

Fetching JSON in C# Xamarin Forms

我正在尝试在 Xamarin Forms (C#) 中使用我的 JSON API。 API 可以 return:

失败时:{"status":"failed"}

一切正常时:{"status":"success","time":"03.06.2016 13:15","data":["Thats a cool text","And thats another text"]}

我目前正在这样做:

var client = new HttpClient ();
var url = "http://domain/plan/web/get/" + userclass;

var response = await client.GetAsync (url);
var data = response.Content.ReadAsStringAsync ().Result;

但是现在,我需要:

我该怎么做?

您需要做的第一步是创建一个可以处理您的 JSON 数据的 class。在这种情况下,我会这样做:

public class APIResponse
{
    public string status { get; set; }
    public string time { get; set; }
    public List<string> data { get; set; }
}

然后你需要创建你需要创建一个方法来发出 GET 请求。这可以通过这样做来完成:

    public async Task <APIResponse> GetDataFromAPI(string query){
                try
                {
                    var client = new System.Net.Http.HttpClient ();
                    client.BaseAddress = "http://domain/";
                var response = await client.GetAsync("plan/web/get"+query);

                response.EnsureSuccessStatusCode();
                var responseJSON = await response.Content.ReadAsStringAsync();

                var msg  = JsonConvert.DeserializeObject<APIResponse>(responseJSON);

                return msg;
            }

            catch (Exception exc)
            {
                var msg = new APIResponse ();
                msg.status = "failed";

                return msg;
            }

}

然后在您的页面中使用以下方法调用该方法:

APIResponse data = await GetDataFromAPI("yourquery");
if(data.status.Equals("success"){
     //Assign object values to label text property
}
else {
     DisplayAlert("Error","Something wrong happened", "OK");
}