У меня возникли проблемы при попытке выяснить, как проанализировать строку в файле json, чтобы она возвращала только часть строки в виде строки.Ниже я проиллюстрирую:
public String GetDistance(String origin, String destination) throws MalformedURLException, IOException {
//URL url = new URL("https://maps.googleapis.com/maps/api/distancematrix/json?units=imperial&origins" + origin + ",UK+destination=" + destination + ",UK&key=mykey");
URL url = new URL("https://maps.googleapis.com/maps/api/distancematrix/json?units=imperial&origins=Cornwall,UK&destinations=London,UK&key=mykey");
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("GET");
String line, outputString = "";
BufferedReader reader = new BufferedReader(new InputStreamReader(conn.getInputStream()));
while ((line = reader.readLine()) != null) {
if (line.contains("distance")) {
outputString = reader.readLine().trim();
return outputString;
}
}
return outputString;
}
Эта функция создает файл json в моем браузере с помощью API Карт Google:
{
"destination_addresses" : [ "London, UK" ],
"origin_addresses" : [ "Cornwall, UK" ],
"rows" : [
{
"elements" : [
{
"distance" : {
"text" : "284 mi",
"value" : 456443
},
"duration" : {
"text" : "4 hours 52 mins",
"value" : 17530
},
"status" : "OK"
}
]
}
],
"status" : "OK"
}
В настоящее время outputString возвращает строку:текст ":" 284 мили ".Тем не менее, желаемый результат - просто вернуть мили, «284».
Я знаю, что это, скорее всего, повторная публикация, однако я искал решение этой проблемы и не смог реализовать что-тоэто работает.
Любая помощь по этому вопросу будет принята с благодарностью, Приветствия.