【问题标题】:How can i convert xml to json in oracle?oracle中如何将xml转换为json?
【发布时间】:2017-11-24 04:46:13
【问题描述】:

如果我有

<xml><name>himasnhu</name><age>24</age></xml>  

我怎样才能把它转换成

{"name":"himanshu","age":24} .

谢谢。

【问题讨论】:

    标签: json xml oracle


    【解决方案1】:

    在 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()'
           );
    

    我不在 12c 系统上,因此未经测试。

    在早期版本中,您可以编写一个 Java 函数 [1] [2] 使用众多 Java JSON packages 之一来执行转换,然后使用 loadjava utility(或 CREATE JAVA statement)将其加载到数据库中,然后然后使用它。

    【讨论】:

      【解决方案2】:

      您可以使用 XML 到 JSON 过滤器将 XML 文档转换为 JavaScript 对象表示法 (JSON) 文档。使用的映射约定详见:Github- Mapping convention

      配置

      要配置 XML 到 JSON 过滤器,请指定以下字段:

      姓名:

      输入合适的名称以反映此过滤器的作用。

      自动插入 JSON 数组边界:

      选择此选项可尝试从传入的 XML 文档自动重建 JSON 数组。默认选择此选项。

      [注意] 如果传入的 XML 文档包含处理指令,则无论此选项设置如何,都会重建 JSON 数组。如果 XML 文档不包含 ,并且选择了此选项,则过滤器会尝试通过检查元素名称来猜测应该是数组的一部分。

      【讨论】:

      • OP 在 Oracle 数据库中询问这个问题 - 您应该扩展您的答案以显示在数据库中运行它所需的步骤和代码(即使用 loadjava 实用程序和 CREATE JAVA 语句加载 Jar 和自定义 Java 函数,然后 CREATE FUNCTION .. AS LANGUAGE JAVA ... 创建一个 Oracle 函数来调用它)并提供如何使用它的示例。目前这是对 Oracle 问题的 Java 答案,因此不是很有用(并且主要是指向场外资源的链接,而不是在答案中包含必要的代码)。
      猜你喜欢
      • 2021-03-12
      • 1970-01-01
      • 2015-01-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-15
      • 2021-03-20
      • 2021-11-25
      相关资源
      最近更新 更多