我是Android编程的新手。我在Multilevel ExpandableListview上有一个来自json的数据类。我想将DivisionName值显示为列表的第一行(父级),将SubDivisionName值显示为第二行(子级),将所有Vehicle值显示为第三行(孙级)。所以,这是json数据
[
{
"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列出。这是Multilevel 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转换为这个arrayList?我见过很多教程,但那些对我没什么帮助。我感谢任何帮助。提前致谢
答案 0 :(得分: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>