У меня есть строка, которую я получаю из веб-сокета в следующем формате JSON. Мне нужен способ с очень низкой задержкой для анализа значения c
, связанного с ключом C
. Имена ключей одинаковы для каждого пакета, который я получаю, но значения могут отличаться. Таким образом, ключ C
останется прежним, но значение может измениться с c
на что-то более длинное. В моем приложении из реальной жизни число записей внутри X
и Y
может быть намного больше.
Я пробовал несколько разных подходов, включая анализ одного поля с использованием Jackson [1], чтобы парсинг полной строки до JsonNode
, но все они слишком медленные (более 50 микросекунд). Я думал о том, чтобы найти позицию в строке "C"
с помощью [2], а затем взять следующие несколько символов после этого, но проблема в том, что значение c
имеет переменную длину, что делает его сложным.
String s = {"A":"a","B":"b","data":[{"C":"c","X":[["3.79","28.07","1"],["3.791","130.05","3"],["3.792","370.8958","5"]],"Y":[["3.789","200","1"],["3.788","1238.1709","4"],["3.787","513.4051","3"]]}'
Мне бы хотелось что-то вроде этого:
String valueOfC = getValueOfC(s) // return in only a few microseconds
[1] Как читать одно JSON поле с Джексоном
[2] Java: способ получить позицию совпадения в строке?