如果我有
<xml><name>himasnhu</name><age>24</age></xml>
我怎样才能隐蔽它
{"name":"himanshu","age":24} .
谢谢。
在 Oracle 12.2 中,您应该能够使用:
SELECT JSON_OBJECTAGG( id VALUE text )
FROM XMLTABLE(
'/xml/*'
PASSING XMLTYPE( '<xml><name>himanshu</name></xml>')
COLUMNS id VARCHAR2(200) PATH './name()',
text VARCHAR2(200) PATH './text()'
);
在早期版本中,您可以使用众多 Java JSON 包之一编写 Java 函数 [1] [2] 来执行转换,然后使用 loadjava
实用程序(或 CREATE JAVA
语句(将其加载到数据库中,然后使用该实用程序。
更新:从表中获取数据
SELECT JSON_OBJECTAGG( id VALUE text ) AS json
FROM table_name t
CROSS APPLY XMLTABLE(
'/xml/*'
PASSING XMLTYPE( t.xml )
COLUMNS id VARCHAR2(200) PATH './name()',
text VARCHAR2(200) PATH './text()'
);
其中,对于示例数据:
CREATE TABLE table_name(xml) AS
SELECT '<xml><name>himasnhu</name><age>24</age></xml>' FROM DUAL;
输出:
{"name":"himasnhu","age":"24"} |
到 JSON 筛选器将 XML 文档转换为 JavaScript 对象表示法 (JSON( 文档。有关使用的映射约定的详细信息,请参阅:Github- 映射约定
配置
要配置 XML 到 JSON 筛选器,请指定以下字段:
名字:
输入合适的名称以反映此筛选器的角色。
自动插入 JSON 数组边界:
选择此选项可尝试从传入的 XML 文档自动重建 JSON 数组。默认情况下,此选项处于选中状态。
[注]如果传入的 XML 文档包含处理指令,则无论此选项设置如何,都会重新构造 JSON 数组。如果 XML 文档不包含 ,并且选择了此选项,则筛选器会尝试通过检查元素名称来猜测数组中应包含的内容。