2014-12-08 3 views
0

Я новичок в Android-программировании. У меня есть класс с данными из json в Multilevel ExpandableListview. Я хочу показать значение DivisionName в первой строке (родительском) списка, значение SubDivisionName во вторую строку (дочернее) и все значения Vehicle в третьей строке (внук). Итак, это данные jsonAndroid Конвертировать Json в ArrayList Многоуровневый Расширяемый список

[ 
{ 
    "DivisionID": "2c0e9dc1-a6a7", 
    "DivisionName": "Tyuio", 
    "SubDivision": [ 
     { 
      "SubDivisionID": "70c3ac53-eec6", 
      "SubDivisionName": "FM2222", 
      "Vehicle": [ 
       { 
        "Nopol": "00571564", 
        "LastUpdate": "Oct 10 2010 10:10AM", 
        "LastSpeed": 0, 
        "LastLon": 106.82176 
        "Location": "KNOWHERE" 
       }, 
       { 
        "Nopol": "352848020936627", 
        "LastUpdate": "Oct 10 2010 10:10AM", 
        "LastSpeed": 0, 
        "LastLon": 10124.228 
        "Location": "KNOWHERE2" 
       } 
      ] 
     } 
    ] 
} 
] 

Я пытаюсь заполнить его в ArrayList. Я смог разобрать данные json. Я хочу, чтобы через json перечислил. Это код Многоуровневого expandableListview

private static final String DIV_NAME= "DivisionName"; 
private static final String SUBDIV_NAME = "SubDivisionName"; 
private static final String TAG_NOPOL = "Nopol"; 

protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_home); 

// third row (subchild-list) 
    ArrayList<ItemList> mItemListArray=new ArrayList<ItemList>(); 
    mItemListArray.add(new ItemList(TAG_NOPOL, TAG_LOCATION,TAG_LONG)); 

// second row (child-list) 
    pSubItemArrayList=new ArrayList<SubCategory>(); 
    pSubItemArrayList.add(new SubCategory(SUBDIV_NAME, mItemListArray));  

// first row (parent-list) 
    pProductArrayList=new ArrayList<Product>(); 
    pProductArrayList.add(new Product(DIV_NAME, pSubItemArrayList)); 

Я хочу показать tyuio в первую строку списка (родитель), FM222 в вторую строку списка (ребенок), и все значения автомобиля в третий ряду (внук). Данные JSON являются динамическими. Есть ли способ конвертировать json в этот массивList? я видел много учебников, но это не помогло мне. Я ценю любую помощь. Заранее спасибо

я относится к this и this

ответ

0

Вам нужно будет бросить в ответ на список.

Я бы рекомендовал сделать следующее:

Создать класс ответа:

public class DivisionResponse { 

    @SerializedName("DivisionID") 
    public String divisionId; 

    @SerializedName("DivisionName") 
    public String divisionName; 

    @SerializedName("DivisionName") 
    public List< SubDivision> subdivision; 

    public class Subdivision{ 

      @SerializedName("SubDivisionId") 
      public String SubDivisionId; 

      @SerializedName("SubDivisionName") 
      public String SubDivisionName; 

      @SerializedName("Vehicle") 
      public List<Vehicle> SubDivisionName; 

      public class Vehicle{ 


       @SerializedName("Nopol") 
       public String nopol; 

       @SerializedName("LastUpdate") 
       public String LastUpdate; 

       @SerializedName("LastSpeed") 
       public String LastSpeed; 


       @SerializedName("LastLon") 
       public String LastLon; 


       @SerializedName("Location") 
       public String Location; 
      } 
    } 
} 

Тогда вы будете использовать gson бросить ответ на этот класс. Когда вы получаете этот объект или ответ, преобразуйте его в текст.

List<DivisionResponse> response = gson.fromJson(theonjecttext, new TypeToken<List<DivisionResponse>>() {}.getType()); 

, который должен создать список со всеми необходимыми данными.

Убедитесь gson добавляется зависимостей Gradle

compile 'com.google.code.gson:gson:2.2.4' 

Этот код не является специфичной для вашей реакции на них.

Класс ответа может быть независимым классом вместо внутренних классов. Тебе решать.

<dependencies> 
    <!-- Gson: Java to Json conversion --> 
    <dependency> 
     <groupId>com.google.code.gson</groupId> 
     <artifactId>gson</artifactId> 
     <version>2.3.1</version> 
     <scope>compile</scope> 
    </dependency> 
</dependencies> 
+0

Я андроид-проект Eclipse пользователь. Я новичок в gson. это работает, если я использую проект maven и gson 2.3? – user248012

+0

Да, должно. См. Мой обновленный ответ. Вы должны конвертировать в Android Studio. Вы будете намного более продуктивными :) –

Смежные вопросы