ORDS Oracle REST 数据服务 - 大写 JSON KEYS
ORDS Oracle REST Data Services - Capitalize JSON KEYS
我正在学习 ORDS 的工作原理,我想了解是否可以将响应中的 JSON 键大写。
为此,我正在 Oracle 文档中寻找一些配置选项,但找不到任何东西。
谢谢
我们的 Oracle {JSON} 标准要求小写属性。无法告诉 ORDS 生成大写 JSON.
的输出
但是。
如果您自己生成 JSON,您可以使用 'Media Resource' 的源类型定义 ORDS GET HANDLER,然后我可以执行类似的操作。
-- Generated by Oracle SQL Developer REST Data Services 18.2.0.176.0254
-- Exported REST Definitions from ORDS Schema Version 17.4.1.353.06.48
-- Schema: HR Date: Thu Jun 28 07:55:08 EDT 2018
--
BEGIN
ORDS.ENABLE_SCHEMA(
p_enabled => TRUE,
p_schema => 'HR',
p_url_mapping_type => 'BASE_PATH',
p_url_mapping_pattern => 'hr',
p_auto_rest_auth => FALSE);
ORDS.DEFINE_MODULE(
p_module_name => 'test2',
p_base_path => '/test2/',
p_items_per_page => 25,
p_status => 'PUBLISHED',
p_comments => NULL);
ORDS.DEFINE_TEMPLATE(
p_module_name => 'test2',
p_pattern => 'rawjson',
p_priority => 0,
p_etag_type => 'HASH',
p_etag_query => NULL,
p_comments => NULL);
ORDS.DEFINE_HANDLER(
p_module_name => 'test2',
p_pattern => 'rawjson',
p_method => 'GET',
p_source_type => 'resource/lob',
p_items_per_page => 25,
p_mimes_allowed => '',
p_comments => NULL,
p_source =>
'SELECT ''application/json'', upper(json_doc)
from json_play'
);
ORDS.DEFINE_TEMPLATE(
p_module_name => 'test2',
p_pattern => 'rawtext',
p_priority => 0,
p_etag_type => 'HASH',
p_etag_query => NULL,
p_comments => NULL);
ORDS.DEFINE_HANDLER(
p_module_name => 'test2',
p_pattern => 'rawtext',
p_method => 'GET',
p_source_type => 'plsql/block',
p_items_per_page => 25,
p_mimes_allowed => '',
p_comments => NULL,
p_source =>
'begin
owa_util.status_line (200, '''', false);
OWA_UTIL.MIME_HEADER (''text/plain'', TRUE);
HTP.PRN ('{"WHATEVER": 0}');
end;'
);
COMMIT;
END;
因此,在第一个服务中,我正在查询存储在 CLOB 中的现有 JSON 文档,并简单地将内容大写。
在第二个服务中,我正在编写自己的输出。
查询现有的 JSON 文档并返回未按 ORDS 格式化的文本
生成我自己的响应
我正在学习 ORDS 的工作原理,我想了解是否可以将响应中的 JSON 键大写。
为此,我正在 Oracle 文档中寻找一些配置选项,但找不到任何东西。
谢谢
我们的 Oracle {JSON} 标准要求小写属性。无法告诉 ORDS 生成大写 JSON.
的输出但是。
如果您自己生成 JSON,您可以使用 'Media Resource' 的源类型定义 ORDS GET HANDLER,然后我可以执行类似的操作。
-- Generated by Oracle SQL Developer REST Data Services 18.2.0.176.0254
-- Exported REST Definitions from ORDS Schema Version 17.4.1.353.06.48
-- Schema: HR Date: Thu Jun 28 07:55:08 EDT 2018
--
BEGIN
ORDS.ENABLE_SCHEMA(
p_enabled => TRUE,
p_schema => 'HR',
p_url_mapping_type => 'BASE_PATH',
p_url_mapping_pattern => 'hr',
p_auto_rest_auth => FALSE);
ORDS.DEFINE_MODULE(
p_module_name => 'test2',
p_base_path => '/test2/',
p_items_per_page => 25,
p_status => 'PUBLISHED',
p_comments => NULL);
ORDS.DEFINE_TEMPLATE(
p_module_name => 'test2',
p_pattern => 'rawjson',
p_priority => 0,
p_etag_type => 'HASH',
p_etag_query => NULL,
p_comments => NULL);
ORDS.DEFINE_HANDLER(
p_module_name => 'test2',
p_pattern => 'rawjson',
p_method => 'GET',
p_source_type => 'resource/lob',
p_items_per_page => 25,
p_mimes_allowed => '',
p_comments => NULL,
p_source =>
'SELECT ''application/json'', upper(json_doc)
from json_play'
);
ORDS.DEFINE_TEMPLATE(
p_module_name => 'test2',
p_pattern => 'rawtext',
p_priority => 0,
p_etag_type => 'HASH',
p_etag_query => NULL,
p_comments => NULL);
ORDS.DEFINE_HANDLER(
p_module_name => 'test2',
p_pattern => 'rawtext',
p_method => 'GET',
p_source_type => 'plsql/block',
p_items_per_page => 25,
p_mimes_allowed => '',
p_comments => NULL,
p_source =>
'begin
owa_util.status_line (200, '''', false);
OWA_UTIL.MIME_HEADER (''text/plain'', TRUE);
HTP.PRN ('{"WHATEVER": 0}');
end;'
);
COMMIT;
END;
因此,在第一个服务中,我正在查询存储在 CLOB 中的现有 JSON 文档,并简单地将内容大写。
在第二个服务中,我正在编写自己的输出。
查询现有的 JSON 文档并返回未按 ORDS 格式化的文本
生成我自己的响应