разобрать ответ объекта json от веб-службы php - PullRequest
1 голос
/ 30 мая 2011

Я прошел ряд уроков, чтобы понять, как мы можем проанализировать объект JSON. структура ответа объекта JSON от веб-службы выглядит следующим образом

{"posts":[

{"gpoint":{"latitude":"18.966364","longitude":"72.811317"}},

{"gpoint":{"latitude":"19.07023","longitude":"72.82917"}},

{"gpoint":{"latitude":"19.094889","longitude":"72.840157"}},

{"gpoint":{"latitude":"19.056601","longitude":"72.901955"}}]

}

и это мой код:

       HttpResponse response= client.execute(post);

       content = response.getEntity().getContent();

       String result = stringConversion(content);   


       jObject = new JSONObject(result);

       JSONArray gpoint = jObject.getJSONArray("posts");

       for (int i = 0; i<gpoint.length();i++)
       {

            double geoLat=gpoint.getJSONObject(i).optDouble("latitude");
            double geoLong=gpoint.getJSONObject(i).optDouble("longitude");

       //   double geoLat = gPointObject.getDouble("latitude");
       //   double geoLong = gPointObject.getDouble("longitude");      
            Log.i(Tag," "+ geoLat);
            Log.i(Tag," "+ geoLong);
       }

}   


catch(JSONException e){
    Log.e("log_tag", "Error parsing data "+e.toString());
}

Я не могу разобрать этот ответ, когда я его анализирую, он не дает никакого исключения для разбора, но значение для широты и долготы равно NaN

Пожалуйста, скажите мне, где я иду не так? Заранее спасибо.

Ответы [ 2 ]

3 голосов
/ 30 мая 2011

Попробуйте это:

JSONObject gp;
for (int i = 0; i<gpoint.length();i++)
        {
gp = gpoint.getJSONObject(i);
double geoLat = gp.getJSONObject("gpoint").optDouble("latitude");
double geoLong = gp.getJSONObject("gpoint").optDouble("latitude");

        //  double geoLat = gPointObject.getDouble("latitude");
        //  double geoLong = gPointObject.getDouble("longitude");      
            Log.i(Tag," "+ geoLat);
            Log.i(Tag," "+ geoLong);
       }

Вам не хватает одного вложенного слоя.

0 голосов
/ 24 февраля 2012

Вы можете использовать GSON.Если вы подготовите адекватную структуру DTO, вы можете отобразить свой JSON в одном вызове функции.Я использую это в своем приложении.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...