2016-05-10 5 views
0

Angenommen, ich muss einen binären Suchbaum mit Daten füllen, die vom Server erhalten wurden. Sprich weiter, dass die Daten vom Server kommt ein JSON-Array von Knoten istVon JSon-Array zu benutzerdefinierter Datenstruktur

"parts":[{"id":1,"name":"apple"},{"id":12,"name":"orange"},{"id":21,"name":"pen"},{"id":214,"name":"kite"}]//where each {} represents a node 

Wie verwende ich Gson das Array von Knoten in meine BST zu lesen?

Wenn Sie ein BST hat zwei Klassen

public class BST{ 
    private Note root; 
} 

public class Node{ 
    String el; 
    Node left, right; 
} 

erinnern Wenn BST zu hart ist, Bild etwas einfacher

public class MyDataStructure{ 
    private List<Part> partsList; 
    … 
} 

public class Part{ 
    String el; 
    List<String> stuff; 
} 

Wie füllen ich MyDataStructure mit partsList Gson auf Android verwendet? Als eine Nebenbemerkung würde ich lieber helfen, die MyDataStruction-Version des Problems zu lösen.

+0

Post ein Beispiel ho W wie kann der JSON aussehen ... so können wir Ihnen helfen, die pojos zu erstellen .... –

+0

Ich habe aktualisiert. Aber zögern Sie nicht, sich so einfach ein JSON vorzustellen, wie Sie es wünschen. Das eigentliche Problem liegt jenseits des JSon selbst. Ich habe dir schon gesagt, dass es ein Array ist. –

+0

Wie wird die BST dem Array zugeordnet? Tiefe zuerst? Oder sollen Sie die Beziehungen zwischen den Knoten über die IDs herausfinden? –

Antwort

1

ok .. können Sie diese als Referenz verwenden:

definieren eine Klasse pojo und eine Frucht (die Array/Liste/Sammlung)

die pojo

class Pojo { 
    @Override 
    public String toString() { 
     return "Pojo [parts=" + parts + "]"; 
    } 
    private List<Fruits> parts; 
} 

die Frucht

class Fruits { 
    private int id; 
    private String name; 
    @Override 
    public String toString() { 
     return "[id=" + id + ", name=" + name + "]"; 
    } 
} 

die Umsetzung

Auch Setter und Getter für die Frucht Klasse
String json = "{\"parts\": [{\"id\":1,\"name\":\"apple\"},{\"id\":2,\"name\":\"pear\"},{\"id\":3,\"name\":\"kiwi\"}]}"; 
Gson g = new Gson(); 
Pojo p = g.fromJson(json, Pojo.class); 
System.out.println(p); 

die MyDataStructure Bevölkerung

zum pojo ein Setter, so können Sie mit der Liste Getter hinzuzufügen arbeiten, fügen Sie, so dass Sie die ID und den Namen bekommen können ..

so im pojo Objekt p können Sie tun p.getList() und iterieren über die Elemente

Etwas wie:

Pojo p = g.fromJson(json, Pojo.class); 
System.out.println(p); 
for (Fruits f : p.getParts()) { 
    System.out.println(f.getId()); 
    System.out.println(f.getName()); 
}