是否可以在JSON中输出我的数据而不是在Oracle 11g中输出XML

时间:2018-06-20 15:14:39

标签: json xml oracle oracle11g

我目前有一个使用Oracle 11g的PL / SQL构建的API。当前,它以XML输出数据。我受命将此输出转换为JSON。 Oracle 11g甚至可能做到这一点吗?我一直在研究网络,发现直到Oracle 12c才提供JSON支持。有没有一种方法可以将该API的输出从XML转换为JSON。任何帮助表示赞赏。谢谢。

这是我下面的当前XML输出:

<?xml version="1.0"?>
-<items>
  -<CAGE_INFO>
       <CAGE_CODE>21356</CAGE_CODE>
       <ORG_NAME_ABBR>NASAJSC</ORG_NAME_ABBR>
       <ORGANIZATION_NAME>NASA/ LYNDON B JOHNSON SPACE CENTER</ORGANIZATION_NAME>
   </CAGE_INFO>
</items>

我需要使用Oracle 11g的JSON输出:

{
"items": {
  "CAGE_INFO": {
     "CAGE_CODE": "21356",
     "ORG_NAME_ABBR": "NASAJSC",
     "ORGANIZATION_NAME": "NASA/ LYNDON B JOHNSON SPACE CENTER"
  }
 }
}

2 个答案:

答案 0 :(得分:1)

我想这取决于您“转换”的意思。

  1. 如果您的意思是 convert ,并且正在寻找一种采用任意XML并返回JSON的工具,那么编写该工具将需要很多工作。我不知道有人可能已经做到了。
  2. 如果仅需要JSON中的此输出,则可以找到生成XML的任何地方并将其重写(我假设它由一个或多个SQL查询支持),然后调用生成JSON的PL / SQL包。我的第一站是plsql-utils库和JSON_UTIL_PKG。
  3. 或者,采用生成XML的函数,然后通过字符串操作将其重写以构造JSON。毕竟,JSON只是格式化的文本。我之前已经做过,如果您的需求很简单,这可能是最快的方法。

答案 1 :(得分:0)

直接转换可能很困难。相反,您可以使用XMLTYPE首先解析XML,然后将其转换为JSON。转换为JSON既可以是自定义代码,也可以是在数据库实例上安装了APEX,然后可以查看APEX_JSON软件包。 在Oracle中查看XMLTYPE的描述。

https://docs.oracle.com/cd/A97630_01/appdev.920/a96616/arxml24.htm