我正在制作一个应用程序,向用户显示最近的健身房。在我向Google Places Api提出请求后,它会返回一些json。我使用正则表达式从json获得了纬度。但是,我无法得到经度。我的代码如下。有人可以帮忙吗?
for (int i = 0; i < jsonArray.length(); i++){
String latitude = "\"lat\":";
String longitude = "lng\":";
Pattern p = Pattern.compile(latitude +"(.*?),");
Pattern pattern = Pattern.compile(longitude + "(.*?)"+ ",");
JSONObject jsonPart = jsonArray.getJSONObject(i);
String latLong = jsonPart.getString("geometry");
Matcher m = p.matcher(jsonPart.getString("geometry"));
Matcher matcher = pattern.matcher(jsonPart.getString("geometry"));
while( matcher.find()) {
Log.i("longitude", matcher.group(1));
}
while (m.find()){
Log.i("latitude", m.group(1));
}
}
这是我需要获得纬度和经度的线。我可以获得纬度,但经度不起作用。
gymlocation: {"location":{"lat":40.4434584,"lng":-79.964227}}
答案 0 :(得分:2)
String longitude = "\"lng\":";
您缺少\"
或者,这不是更好吗?
答案 1 :(得分:0)
如果您仍想使用正则表达式,则由于"lng"(.*?),
惰性运算符,您的第二个表达式?
找不到任何内容。它将尝试尽可能匹配至少字符,并且因为您正在搜索的字符串没有,
但是您的表达式尝试在最后匹配一个,它将不匹配任何内容。