Как эффективно анализировать и сохранять данные в Chronicle Map
Я пытаюсь найти кратчайший и эффективный путь для анализа значений из json и сохранения некоторых из них на карте хроники.
Мое текущее решение:
String data = ...;
ChronicleMap<CharSequence, Long> map = ...;
JSONWire wire = new JSONWire(Bytes.allocateElasticDirect(128));
wire.bytes().append(data);
long value = wire.read("fieldName").readLong();
map.put("key", value);
Могу ли я каким-то образом избежать чтения в длинное и сохранить байты для отображения, предполагая, что это длинное?
1 ответ
Если вы ищете первое вхождение имени поля и хотите получить значение после него, я бы проанализировал его вручную. JSOWire предполагает, что вы хотите прочитать сообщение целиком.
String field = "\"fieldName\":";
int pos = data.indexOf(field);
if (pos >= 0) {
int end = data.indexOf(",", pos + field.length());
long value = Long.parseLong(data.substring(pos + field.length(), end));
// use the value
}