Я пишу метод, который анализирует строку.Я знаю, что строка имеет формат json.
Также я знаю, что она содержит значения для lat
и lng
, но она может быть на любом уровне.
Я написал следующий код для реализацииполучение значения по ключу:
Map jsonBodyMap = objectMapper.convertValue(body, Map.class);
String lat = getByKey(jsonBodyMap, "lat");
private String getByKey(Map<?, ?> map, String key) {
Object value = map.get(key);
if (value != null) {
return String.valueOf(value);
}
for (Map.Entry entry : map.entrySet()) {
Object entryValue = entry.getValue();
if (entryValue instanceof Map) {
String val = getByKey((Map) entryValue, key);
if (val != null) {
return val;
}
}
}
return null;
}
Но это не выглядит хорошим решением.
Знаете ли вы лучший способ реализовать его?