如何解决解析来自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。我正在我的应用程序中使用它。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。