如何在Java中创建和访问list ..的列表?

时间:2019-09-26 17:51:38

标签: java json list

我有一个来自JSON的对象,我想访问多个数组中的元素。 我从JSON在Dto中生成带有getter和setter的类 它给了我一种公共类型 List <List <List <List <Double> >>> getCoordinates ()

如何获取坐标元素?

我尝试这种方式,但是没有用。 GeoReferencias是我的对象json。

GeoReferencias geoReferencias = new GeoReferencias();
for(Geometry geometry : geoReferencias.getFeatures().get().getGeometry()) {
    geometry.getCoordinates();
}

JSON数据:

{
    "type": "Feature",
    "id": 426,
    "geometry": {
        "type": "MultiPolygon",
        "coordinates": [
        [
            [
                [
                    20.90620040893566,
                    -11.984783172607422
                ],
                [
                    20.901933670044002,
                    -11.982872009277344
                ]
            ]
        ]
    }
}

1 个答案:

答案 0 :(得分:1)

List <List <List <List <Double> >>> getCoordinates = new ArrayList<>();

for(int i = 0 ; i <getCoordinates.size()  ; i++){
     Double cordinate[] = new Double[2];// if you have only 2 cordinates
     List <List <List <Double> >> a = getCoordinates.get(i)

     for(int j = 0 ; j <a.size()  ; j++){
         List <List <Double> > b = a.get(j);

         for(int k = 0 ; k <b.size()  ; k++){
            List <Double>  c = b.get(k);

            for(int l = 0 ; l <c.size()  ; l++){
                Double[l] =  c.get(l);
            }
        }
    }
    //perform your action related to coordinates over here because it will re-initialize as its inside loop.
}

这是遍历嵌套列表的方式。

如果您始终需要遍历第4个列表,并且前三个嵌套列表的长度固定,则可以使用以下语法:-

Double arr[] = new int[2];
arr[0] = getCoordinates.get(fixed_index).get(fixed_index).get(fixed_index).get(0);
arr[1] = getCoordinates.get(fixed_index).get(fixed_index).get(fixed_index).get(1);