2017-06-27 4 views
-1

Ich bin neu in xamarin.forms, und ich möchte eine Cross-Plattform-App erstellen, die JSON-Daten in der Listenansicht anzeigen wird. Das sind meine JSON-Daten.Wie werden JSON-Daten in der Xamarin.forms-Listenansicht angezeigt?

{ 
    "fish_product": [ 
    { 
     "fish_id": "1", 
     "fish_img": "", 
     "fish_name": "Indian Mackerel", 
     "fish_category": "Marine Fish", 
     "size": "Medium", 
     "price": "100" 
    }, 
    { 
     "fish_id": "2", 
     "fish_img": "", 
     "fish_name": "Manthal Repti", 
     "fish_category": "Marine Fish", 
     "size": "Small", 
     "price": "200" 
    }, 
    { 
     "fish_id": "4", 
     "fish_img": "", 
     "fish_name": "Baby Sole Fish", 
     "fish_category": "Marine Fish", 
     "size": "Small", 
     "price": "600" 
    } 
] 
} 

Ich möchte "fish_name" in der Listenansicht anzeigen. Bitte schlagen Sie hier eine Lösung oder einen Artikel oder ein Tutorial vor. Vielen Dank im Voraus.

+0

Erfolgreich die Antwort von Ihrer API erhalten? –

+0

Nein sir.Aktuell diese Art von JSON Daten müssen wir zeigen.Kann man einen Code vorschlagen? @Alex Chengalan –

+0

Probieren Sie dies aus: https://developer.xamarin.com/guides/xamarin-forms/cloud-services/consuming/ Rest/ –

Antwort

0

Ich glaube, Sie dieses JSON wie auf ein Objekt deserialisieren haben

public class FishProduct 
{ 
    public string fish_id { get; set; } 
    public string fish_img { get; set; } 
    public string fish_name { get; set; } 
    public string fish_category { get; set; } 
    public string size { get; set; } 
    public string price { get; set; } 
} 

public class RootObject 
{ 
    public ObservableCollection<FishProduct> fish_product { get; set; } 
} 

Dann müssen Sie ein Listview verwenden, wo Sie Ihre listview.ItemsSource = myList.fish_product

Dann setzen Sie ein Datatemplate mit ViewCell

erstellen haben

In dieser ViewCell können Sie eine Beschriftung haben, wenn Sie das Feld fish_name festlegen. In Code so etwas wie

Label label = new Label(); 
label.SetBinding(Label.TextProperty, "fish_name"); 

ich glaube, Sie einen Blick auf ListView Documents

+0

Sir Können Sie vorschlagen, Async Call Beispiel Bitte? @Alessandro Caliaro –

+0

async Anruf für was? Ihre Frage ist "wie Sie anzeigen ..." brauchen Sie nicht async. Sie benötigen Bindungen –

0

nehmen kann ich denke, das Sie

helfen kann

Ihr Modell

public class FishProduct 
{ 
    public string fish_id { get; set; } 
    public string fish_img { get; set; } 
    public string fish_name { get; set; } 
    public string fish_category { get; set; } 
    public string size { get; set; } 
    public string price { get; set; } 
} 

public class RootObject 
{ 
    public List<FishProduct> fish_product { get; set; } 
} 

Webservice Aufruf und JSON Deserialisation

public async Task GetData() 
{ 
try 
    { 
    HttpClient client = new HttpClient(); 
    var result = await client.GetAsync("http://yourJSON_Url"); 
    result.EnsureSuccessStatusCode(); 
    string json = await result.Content.ReadAsStringAsync(); 
    List<FishProduct> res= JsonConvert.DeserializeObject<List<FishProduct>>(json); 

    } 
catch (Exception ex) 
{ 
    throw; 
    } 
} 
Verwandte Themen