解析来自php Web服务的json对象响应

问题描述

| 我经历了许多教程,以了解如何解析JSON对象。来自Web服务的ma 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 请告诉我,我要去哪里了?提前致谢。     

解决方法

        尝试这个:
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);
       }
您缺少一个嵌套层。     ,        您可能要使用GSON。如果您准备了足够的DTO结构,则可以在一个函数调用中映射JSON。我正在我的应用程序中使用它。