2016-07-14 2 views
0

Я хочу, чтобы выполнить запрос, как это:Anorm: Побег {для Postgres

SELECT '{"a":[1,2,3],"b":[4,5,6]}'::json#>>'{a,2}'

Но anorm не может подготовить запрос и поднять синтаксическую ошибку.

Как избежать символов '{' и '}' в тексте SQL для анома?

+1

'jsonb_build_object ('a', json_build_array (1,2,3), 'b', json_build_array (4,5,6))' см. Руководство для деталей: https://www.postgresql.org/docs /current/static/functions-json.html –

+0

Это временное решение только для приведенного примера. проблема заключается в том, чтобы избежать символов {,}, но не выполнять sql выше. В любом случае, спасибо. –

+0

попробуйте запустить это вместо: 'SELECT $ safequoting $ {" a ": [1,2,3]," b ": [4,5,6]} $ safequoting $ :: json # >> $ safe $ {a , 2} $ safe $ '- Я думаю, что это проблема кавычек, а не кривые скобки –

ответ

0

Update: решение является довольно простой (как RTFM :))

SELECT '{"a":[1,2,3],"b":[4,5,6]}'::json#>>'{a,2}' 

должен быть

SELECT '{"a":[1,2,3],"b":[4,5,6]}'::json->'a'->>2 

нет символов '{', '}' так Anorm счастлив ,

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