Я использую датастакс кассандру. Я пытаюсь разобрать результаты cassandra в тип java и вернуть в ответ json. Здесь каждая строка имеет тип VendorToken.class (с полями vendorId, vendorName) Как разобрать строку в тип VendorToken.class с помощью jackson ObjectMapper?
ResultSet results = getToken(vendorId);
for(Row row : results) {
System.out.println(row); // Output is: Row[vendorId, testVendorName]
}
Или есть другой способ парсить в json? Я хочу вернуть пользователю в формате json. Пожалуйста помоги.




Просто используйте для таких вещей Картограф объектов — его нет в ядре драйвера, поэтому вам нужно будет добавить еще одну зависимость в файл сборки. После этого вы можете отображать классы POJO непосредственно в/из таблиц Cassandra.
@Table(name = "t4", keyspace = "test")
public class Test4Data {
@PartitionKey
int id;
@ClusteringColumn
@Column(name = "c")
int clCol;
@Column(name = "t")
String text;
// ... getters/setters, etc.
}
MappingManager manager = new MappingManager(session);
Mapper<Test4Data> mapper = manager.mapper(Test4Data.class);
Test4Data test4Data = mapper.get(0, 1);
// output as JSON, etc.
Если вам нужно работать с несколькими записями, например, делать запросы только по ключу раздела и т. д., вам нужно использовать Аксессуар, например:
@Accessor
public interface UserAccessor {
@Query("SELECT * FROM user")
Result<User> getAll();
}
UserAccessor userAccessor = manager.createAccessor(UserAccessor.class);
Result<User> users = userAccessor.getAll();
а затем перебрать результаты...
P.S. Но вы можете получить JSON от Cassandra напрямую, используя SELECT JSON ... (документ, пример), хотя у вас меньше контроля над форматированием таких вещей, как дата/время.