Как эффективно анализировать и сохранять данные в 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
}
Другие вопросы по тегам