繁体   English   中英

Android将Json转换为ArrayList多级可扩展Listview

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM