Всем доброго времени суток!
После сканирования QR-кода, и раскодирования данных я получаю такую строку (String):
D/vResult: {"Command":"101","ContractorGUID":"{29545D4D-7AC9-4FCB-9E5C-B7AF4D9A70B5}"}
Мне необходимо извлечь значение ключа ContractorGUID
. В данный момент, для этого я использую обрезание строки (.substring
):
vResult.substring(35, vResult.length() - 2)
Вопрос: Есть ли какое-то более простое решение этой задачи? Что-то по типу метода .getString
, как в JSONObject
.
Можно воспользоваться любой удобной библиотекой работы с JSON и получить результат:
String vResult = "{\"Command\":\"101\",\"ContractorGUID\":\"{29545D4D-7AC9-4FCB-9E5C-B7AF4D9A70B5}\"}";
System.out.println("vResult: " + vResult);
try {
org.json.simple.parser.JSONParser parser = new org.json.simple.parser.JSONParser();
org.json.simple.JSONObject result = (org.json.simple.JSONObject) parser.parse(vResult);
String value = (String) result.get("ContractorGUID");
System.out.println("value: " + value);
} catch (org.json.simple.parser.ParseException e) {
System.out.println("Error: " + e);
}
Консоль:
vResult: {"Command":"101","ContractorGUID":"{29545D4D-7AC9-4FCB-9E5C-B7AF4D9A70B5}"}
value: {29545D4D-7AC9-4FCB-9E5C-B7AF4D9A70B5}
String[] parts = vResult.split("ContractorGUID":"{:", 2);
System.out.println(parts[1]);
Можно регуляркой вытащить:
String vResult = "{\"Command\":\"101\",\"ContractorGUID\":\"{29545D4D-7AC9-4FCB-9E5C-B7AF4D9A70B5}\"}";
System.out.println("vResult: " + vResult);
java.util.regex.Pattern p = java.util.regex.Pattern.compile("^.+ContractorGUID\":\"(\\{.+\\})\"}$");
java.util.regex.Matcher m = p.matcher(vResult);
String value = m.matches() ? m.group(1) : null;
System.out.println("value: " + value);
Консоль:
vResult: {"Command":"101","ContractorGUID":"{29545D4D-7AC9-4FCB-9E5C-B7AF4D9A70B5}"}
value: {29545D4D-7AC9-4FCB-9E5C-B7AF4D9A70B5}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Новичок, только начал изучать JavaОбъясните, пожалуйста, как создают базы данных в Java
Я разрабатываю приложение, которые имеет два отдельных сервисаОдин из них -> create-react-app, который воспроизводится на порте 3000, другой spring boot rest API service,...
Смотрю вебинар и там как то прошелся по теме Java спецификация и JDK реализацияМожно ли в доходчивом языке описать со структурой что это и как...