[英]Android Convert Json into ArrayList Multilevel Expandable Listview
我是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? 我看过很多教程,但是对我没有帮助。 感谢您的帮助。 提前致谢
您将需要将响应转换为列表。
我建议您执行以下操作:
创建一个响应类:
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>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.