2017-12-27 18 views
0

Wenn ich die Antwort anzeigen, alles, was ich bekomme, ist ein Null-Ergebnis. Ich denke, es könnte die Klasse sein, weil ich mich mit dem http verbinde. Irgendwelche Ideen? Vielen Dank !keine Daten angezeigt REST Get Xamarin Formen

public class info 
    { 

     public class Text 
     { 
      public int userId { get; set; } 
      public int id { get; set; } 
      public string title { get; set; } 
      public string body { get; set; } 
     } 

dies ist der Aufruf:

Device.BeginInvokeOnMainThread(async() => 
      { 
       RestClient client = new RestClient(); 
       var apiresult = await client.Get<info>("https://jsonplaceholder.typicode.com/posts"); 


       if (apiresult != null) 
       { 

        labelchange.Text = apiresult.Text.title; 
       } 

      }); 

und der tatsächliche REST

public class RestClient 
    { 
     public async Task <T> Get <T>(string url) 

     { 

      try 
      { 
       HttpClient client = new HttpClient(); 
       var response = await client.GetAsync(url); 
       if (response.StatusCode == System.Net.HttpStatusCode.OK) 
       { 
        var jsonstring = await response.Content.ReadAsStringAsync(); 
        return Newtonsoft.Json.JsonConvert.DeserializeObject<T>(jsonstring); 
       } 
      } 
      catch 
      { 

      } 
      return default(T); 
     } 
    } 

Antwort

0

Der Objekttyp Sie an das RestClient passieren, ist falsch. Die Art, die von https://jsonplaceholder.typicode.com/posts Rückkehr ist List<Text>

Also, sollten Sie die folgende Zeile:

var apiresult = await client.Get<List<Text>>("https://jsonplaceholder.typicode.com/posts"); 

Um das Mitglied im Ergebnis zuzugreifen, nur foreach-Schleife das Element innerhalb des Ergebnisses:

foreach (var info in apiresult) 
{ 
    // Do something with info. e.g. info.userId, info.id... 
} 
+0

Danke. Yeap, die es reparieren. – Pxaml

+0

schnelle Frage. wenn Sie auf die Objektliste zugreifen. das Übliche ist ex: ** labelchange = apresult.info.Text.Name; ** aber ich kann nicht auf diese Mitglieder zugreifen. irgendwelche Arbeit herum? – Pxaml

+0

Nur foreach Schleife das Apiresult. Ich habe als Teil der Antwort hinzugefügt. – lowleetak