Как вытащить коодинтаы из json?

271
11 ноября 2017, 11:09

Есть String содержащий вот такой Json:

{"type": "FeatureCollection", "source": "www.gmapgis.com", "features": 
[{"type":"Feature","properties": {  "style": "#FF0000,5,1,#ff8800,0.4"   },
"geometry": {"type": "Polygon", "coordinates": [ [[49.86686,40.40937],[49.86657,40.40917],[49.86733,40.40898],[49.86686,40.40937]]]}}]}

Как спарсить значения координат?

Answer 1

Вот вам пример как это сделать при помощи org.json

class Coordinate {
   private double lat;
   private double lon;
   public Coordinate(double lat, double lon){
       this.lat = lat;
       this.lon = lon;
   }
}

Сам метод который парсит json

List<Coordinate> coordinateParser(String json) {
    JSONObject data = new JSONObject(json);
    JSONArray coordArr = data.getJSONArray("features")
            .getJSONObject(0)
            .getJSONObject("geometry")
            .getJSONArray("coordinates")
            .getJSONArray(0);
    List<Coordinate> coordinates = new ArrayList<>();
    for (int i = 0; i < coordArr.length(); i++) {
        double lat = coordArr.getJSONArray(i).getDouble(0);
        double lon = coordArr.getJSONArray(i).getDouble(1);
        coordinates.add(new Coordinate(lat, lon));
    }
    return coordinates;
}

А вообще я бы советовал создать model object и при помощи Jackson сериализовать это автоматически без дополнительных манипуляции.

READ ALSO
Не выводит первую строку в list view

Не выводит первую строку в list view

Имеется такой вот код, он выводит информацию из SQLite в листИ все работает, нооо

242
Сервлет отрабатывает 2 или более раз

Сервлет отрабатывает 2 или более раз

Сайт написан на чистых сервлетах, никаких фреймворков не используетсяПри открытии любой страницы сервлет этой страницы отрабатывает 2 раза

209
Считывание Aztec кода на Android

Считывание Aztec кода на Android

Господа программисты, кто то сможет подсказать по считыванию штрих-кода? Как в приложении Сбербанка сделали считывание квитанции по налогам?

140
Работа с реализацией Validator

Работа с реализацией Validator

У меня есть такой валидатор:

151