2015-03-16 3 views
0

Я бегу следующий примерКак разобрать этот JSON, где название «»

declare 
    obj json := json('{"TR,A" : "OK" }'); 
begin 
    dbms_output.put_line(JSON_EXT.GET_STRING (obj, 'TR,A')); 
end; 

и получить сообщение

ORA-20110: JSON Path parse error: expected . or [ found , at position 4 
ORA-06512: at "SCOTT.JSON_EXT", line 193 
ORA-06512: at "SCOTT.JSON_EXT", line 201 

Что такое работа вокруг?

+0

Вы пробовали JSON_EXT.GET_STRING (obj, '"TR, A"'))? –

+0

Не работает, такая же ошибка. – Dimassik

ответ

0

Следующий код работает для меня:

declare 
    my_json json := json('{"TR,A" : "OK" }'); 
begin 
    dbms_output.put_line(my_json.get('TR,A').to_char); 
end; 

Вы должны работать непосредственно с JSON типа. Вам нужно только прибегать к использованию таких пакетов, как JSON_EXT, если методов типа недостаточно для вашего варианта использования.

+0

Спасибо за ответ, но 'тип JSON' дает мне ту же ошибку, когда я пытаюсь это ' объявить my_json JSON: = JSON ( «{ "T": { "R": { «TR, A ":" OK " } } } '); begin dbms_output.put_line (my_json.path ('T.R.TR, A'). To_char); end; ' – Dimassik

+0

@ Dimassik попробуйте' my_json.path ('TR [' 'TR, A' ']') ', см. Http://goessner.net/articles/JsonPath/ –

+0

И если вы можете контролировать значение от имени ключа, попробуйте использовать '-' вместо', '. –

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