我有一个android地图,它应该显示从JSON解析的标记。我的循环正在工作并解析JSON,但它只解析前六个项目,然后它停止并停止解析或不在我的谷歌地图上显示标记。
我的JSON请求正在返回此JSON:
https://gist.github.com/anonymous/02e2b88c4de8ac2fe732
(链接它所以我没有填写这个问题的所有字符)
我的异步任务是解析JSON并将标记添加到我的地图中:
protected void onPostExecute(String result){
//decode json here
try{
JSONArray jsonArray = new JSONArray(result);
LatLngBounds.Builder b = new LatLngBounds.Builder();
for(int i = 0; i < jsonArray.length(); i++) {
String breweryName = jsonArray.getJSONObject(i).getString("brewery");
String lat = jsonArray.getJSONObject(i).getString("lat");
String lng = jsonArray.getJSONObject(i).getString("lng");
String bID = jsonArray.getJSONObject(i).getString("breweryID");
double latD = Double.parseDouble(lat);
double lngD = Double.parseDouble(lng);
m.addMarker(new MarkerOptions()
.position(new LatLng(latD, lngD))
.title(breweryName));
b.include(new LatLng(latD, lngD));
}
LatLngBounds bounds = b.build();
//Change the padding as per needed
CameraUpdate cu = CameraUpdateFactory.newLatLngBounds(bounds, 25, 25, 5);
m.animateCamera(cu);
}
catch(Exception e){
}
Dialog.dismiss();
}
更新:
我知道它可能搞砸了我的JSON中的一个名字或值。添加标记或其他东西。基本上它打破了循环并停止了异步任务的其余部分。我在循环之后放了一个吐司,它没有到达它。
答案 0 :(得分:1)
输入错误。这条记录
{
"brewery": "Ayinger Brewery",
"lat": "",
"lng": "",
"breweryID": "QKdFk2"
},
缺少lat和lng值,导致Double.parseDouble()
失败。
在catch中打印异常的堆栈跟踪将有助于调试它。