2017-02-15 89 views
0

Я извлекаю данные из API (Aquaplot) в форме JSON/GEOJSON. Это простой вид того, как хранятся данные. Я хочу получить все координаты и сохранить их в массиве.Как манипулировать Java GeoJSON/JSON?

Как я могу манипулировать данными?

{ "type": "FeatureCollection", "features": 
[ 
    { 
     "type": "Feature", 
     "properties": { 
     "total_length": 558.49614719928, 
     "seca_length": 0, 
     "crossed": [ 
      "suez-canal" 
     ] 
     }, 
     "geometry": { 
     "type": "LineString", 
     "coordinates": [ 
      [32.67333984375, 33.174341551002], 
      [32.3423, 31.2228], 
      [32.310393, 31.094417], 
      [32.319995, 30.811504], 
      [32.342453, 30.703486], 
      [32.305385, 30.568682], 
      [32.396751, 30.357018], 
      [32.449684, 30.285923], 
      [32.500598, 30.260175], 
      [32.52428, 30.244705], 
      [32.560229, 30.198274], 
      [32.585092, 29.973555], 
      [32.567552, 29.923606], 
      [32.714583, 29.448333], 
      [33.237083, 28.553278], 
      [34.018333, 27.504556], 
      [35.92529296875, 24.806681353852] 
     ] 
     } 
    } ] } 
+0

Что вы имеете в виду манипуляции? Вы хотите загрузить данные 'JSON' в какую-то структуру данных (например,« десериализовать »данные)? Можете ли вы показать как любой код? Пожалуйста, уточните свой вопрос. – ventiseis

+0

Вышеизложенный результат от API. и это в результате JSON. Я могу получить все данные, но мне нужна только часть координат, чтобы выполнить какой-то расчет. Точнее, я хочу загрузить данные JSON в какую-то структуру данных. –

ответ

0
public static void main(String args[]) throws Exception 
{ 
    //String url = "http://restcountries.eu/rest/v1/name/norway"; 
    String url = "  "; 

    URL obj = new URL(url); 
    HttpURLConnection con = (HttpURLConnection) obj.openConnection(); 

    // optional default is GET 
    con.setRequestMethod("GET"); 

    //add request header 
    con.setRequestProperty("Authorization", " "); 
    con.setRequestProperty("Content-Type", "application/json; charset=UTF-8"); 

    int responseCode = con.getResponseCode(); 
    System.out.println("\nSending 'GET' request to URL : " + url); 
    System.out.println("Response Code : " + responseCode); 
    System.out.println(con.getInputStream()); 


    BufferedReader in = new BufferedReader(
      new InputStreamReader(con.getInputStream())); 
    String inputLine; 
    StringBuffer response = new StringBuffer(); 

    while ((inputLine = in.readLine()) != null) { 
     response.append(inputLine); 

    } 
    in.close(); 

    //print result 
    System.out.println(response.toString()); 


    JSONObject jsonResponse=new JSONObject(response.toString()); 
    if(jsonResponse==null) 
    { 
    System.out.println("jsnresponse \n \n\n\n"); 
    throw new IllegalArgumentException("Books cannot be null"); 

    } 



Fill the url and key . 

response.tostring() is your response which further with the help pattern matcher you can parse and get the desired result. 
+0

Спасибо. Теперь я могу получить результат API, но точнее хочу получить координаты. Как это сделать. Я думаю, что координаты находятся в вложенном массиве. –

+0

Весь ответ - это json-объект. В котором вам нужно искать геометрию и координаты json-массива. Я могу помочь вам, если вы дадите мне URL-адрес и ключ доступа –