Android   发布时间:2022-04-28  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Android使用Gson解析嵌套的JsonArray大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个嵌套的 JSONArray.我是gson的新人.我已经尝试了很多教程,但那些没有帮助.
编辑:

[
{
    "DivisionID": "2c0e9dc1-a6a7","DivisionName": "Qwerty","SubDivision": [
        {
            "SubDivisionID": "70c3ac53-eec6","SubDivisionName": "QW123","Vehicle": [
                {
                    "Nopol": "00571564","Lastupdate": "Oct 10 2010 10:10AM","LastSpeed": 0,"LastLon": 106.82176,"LOCATIOn": "KNowHERE"
                },{
                    "Nopol": "352848020936627","Lastupdate": "Oct10201010: 10AM","LastLon": 10124.228,"LOCATIOn": "KNowHERE2"
                }
            ]
        }
    ]
}
]

这就是我到目前为止的尝试方式.编辑:

public class Post {
@@R_607_9464@lizedName("DivisionID")
private String divisionid;
@@R_607_9464@lizedName("DivisionName")
private String divisionname;
@@R_607_9464@lizedName("SubDivision")
private ArrayList<SubDivision> subdivisions;

public Post(String divisionid,String divisionName) {
this.divisionid = divisionid;
this.divisionname = divisionname;
}
// getter and setter ...

public class SubDivision {
@@R_607_9464@lizedName("SubDivisionID")
private String subdivisionid;
@@R_607_9464@lizedName("SubDivisionName")
private String subdivisionname;
@@R_607_9464@lizedName("Vehicle")
private ArrayList<Vehicles> vehicles;

public SubDivision (ArrayList<Vehicles> vehicles) {
    this.vehicles = vehicles;
}
// getter and setter ...

public class Vehicles {
@@R_607_9464@lizedName("Nopol")
private String nopol;
@@R_607_9464@lizedName("LastLon")
private String lastlon;
@@R_607_9464@lizedName("Lastupdate")
private String lastupdate;
@@R_607_9464@lizedName("LOCATIOn")
private String LOCATIOn;

public Vehicles(String nopol,String lastlon,String lastupdate,String LOCATIOn) {
    this.nopol = nopol;
    this.lastlon = lastlon;
    this.lastupdate = lastupdate;
    this.LOCATIOn = LOCATIOn;
}
// getter and setter ...

这是我解析它的方式.编辑:

Type listType = new TypeToken<ArrayList<Post>>(){}.getType();
            beanPostArrayList = new GsonBuilder().create().fromJson(reader,listTypE);
            postList=new StringBuffer();
            for(Post post: beanPostArrayList){
                Log.d("topic asd: ",post.getDivisionid()+"");
               postList.append("\n id: "+post.getDivisionid()+
                       "\n divname: "+post.getDivisionname());

                Type listType2 = new TypeToken<ArrayList<SubDivision>>(){}.getType();
                SubdivarrayList = new GsonBuilder().create().fromJson(reader,listType2);
                postList2 = new StringBuffer();
                for(SubDivision subdiv: SubdivarrayList){
                    postList.append("\n id: "+subdiv.getSubdivisionid()+
                            "\n subdivname: "+subdiv.getSubdivisionname());

                    Type listType3 = new TypeToken<ArrayList<Vehicles>>(){}.getType();
                    vehicleArrayList = new GsonBuilder().create().fromJson(reader,listType3);
                    postList3 = new StringBuffer();
                    for(Vehicles vehic: vehicleArrayList){
                        postList.append("\n nopol: "+vehic.getNopol()+
                                "\n lastlon: "+vehic.getLastLon()+
                                "\n latupdate: "+vehic.getLastupdate()+
                                "\n LOCATIOn: "+vehic.getLOCATIOn());
                    }
                }
            }
            return null;
        }
        @Override
        protected void onPostExecute(Void aVoid) {
            super.onPostExecute(aVoid);
            progressDialog.dismiss();
            txtPostList.setText(postList);
            txtSubdivList.setText(postList2);
            txtVehicList.setText(postList3);
        }
    }.execute();

问题是我不知道如何解析这个结构.我该怎么做?

解决方法

以下应该有效:

public class Example {

    public static void main(String[] args) {

        String s = ""; // THE JSON FROM THE NETWORK
        Gson gson = new Gson();
        Post[] posts = gson.fromJson(s,Post[].class);
        for( Post p : posts ){
            System.out.println(posts.toString() );
        }
    }

    public static class Post {

        @@R_607_9464@lizedName("DivisionID")
        String divisionId;

        @@R_607_9464@lizedName("DivisionName")
        String divisionName;

        @@R_607_9464@lizedName("SubDivision")
        List<SubDivision> subDivisions;
    }

    public static class SubDivision {

        @@R_607_9464@lizedName("SubDivisionID")
        String subDivisionId;

        @@R_607_9464@lizedName("SubDivisionName")
        String subDivisionName;

        @@R_607_9464@lizedName("Vehicle")
        List<Vehicle> vehicles;
    }

    public static class Vehicle {

        @@R_607_9464@lizedName("Nopol")
        String nopol;

        @@R_607_9464@lizedName("Lastupdate")
        String lastupdate; // should be a date!

        @@R_607_9464@lizedName("LastSpeed")
        String lastSpeed;

        @@R_607_9464@lizedName("LastLon")
        Double lastLon;

        @@R_607_9464@lizedName("LOCATIOn")
        String LOCATIOn;
    }
}

大佬总结

以上是大佬教程为你收集整理的Android使用Gson解析嵌套的JsonArray全部内容,希望文章能够帮你解决Android使用Gson解析嵌套的JsonArray所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。