使用Datastax Java Driver将行查询为JSON

时间:2015-12-30 00:07:46

标签: java json scala cassandra datastax

我正在尝试使用datastax java驱动程序并将该行检索为JSON。

我做经典 SELECT JSON * from myTable WHERE id=1,这将在CQL上返回一个Json格式的字符串。

例如{ "uuid" : "12324567-...." }

这很有效。

现在,当我尝试使用Java驱动程序时,我使用(在scala中)

val resultSet = session.execute(queryString)

我使用"resultSet.one()"从此结果集中选取一行。 这有我需要的字符串,但我如何选择它?

实验:resultSet.one().getColumnDefinitions.toString

打印:Columns[ [json] (varchar) ]

实验:resultSet.one().toString()
打印:Row[{"uuid": "3ce19e07-2280-4b31-9475-992bda608e70"}]< - 我需要的字符串

如何在我的程序中选择一个代表JSON的简单字符串,而不尝试拆分上面的字符串?

1 个答案:

答案 0 :(得分:5)

Cassandra documentation

所述
  

SELECT JSON的结果只会包含一个名为[json]的列。此列将包含用于INSERT JSON的行的JSON编码的地图表示形式。

为了访问返回行的JSON值,您需要使用Row类中定义的getString方法之一,以索引或按名称获取此列的值:

Row row = resultSet.one();
String json1 = row.getString(0);
String json2 = row.getString("[json]");