2016-02-18 2 views
0
Cursor changeCursor = r.table(Hardcoded.rethinkDBTableName()).changes().getField("new_val").without("id").run(conn); 
    for (Object change : changeCursor) { 
     System.out.println(change); 
    } 

РЕЗУЛЬТАТ:Могу ли я получить данные как строку JSON при прослушивании обновлений RethinkDB?

{ 
    askPrice=1.29846, 
    symbol=EUR/USD, 
    bidTime=1455800529000, 
    askTime=1455800529000, 
    bidSize=1, 
    askSize=1, 
    bidPrice=1.2984 
} 

ОЖИДАЕТСЯ:

{ 
    "askSize":1, 
    "askPrice":1.2978, 
    "askTime":1455729430000, 
    "bidTime":1455729430000, 
    "bidPrice":1.29778, 
    "symbol":"EUR/USD", 
    "bidSize":1 
} 
+0

Фактический результат точно такой же в блоке, который находится в вашем вопросе? Я имею в виду, что начинается с "{" и заканчивается на "}" или вы добавили их, когда пишете вопрос? –

+0

@Bolzano да, результат точно такой же с {...} – k7i3

+0

Я могу получить статические данные в виде строки JSON таким образом - r.table (TABLE_NAME) .get (ID) .toJson(). Run (conn) , но когда я слушаю обновления с добавлением «.changes()» - r.table (TABLE_NAME) .changes(). toJson(). run (conn), он генерирует исключение - ожидаемый тип DATUM, но найден SEQUENCE: VALUE SEQUENCE – k7i3

ответ

1

Вы можете написать r.table(Hardcoded.rethinkDBTableName()).changes().getField("new_val").without("id").map(val -> val.toJson()), и я думаю, что будет делать то, что вы хотите.

+0

Большое спасибо. Это было очень полезно для меня. Я решил это на Java. Вы знаете, как сделать то же самое на Scala? – k7i3

+0

Это должен быть тот же трюк, за исключением того, что анонимный синтаксис функции внутри 'map' будет тем, что синтаксис анонимной функции Scala. – mlucy

Смежные вопросы