如何将 Oracle 数据转换为 JSON,然后在 JavaScript 中使用?
Posted
技术标签:
【中文标题】如何将 Oracle 数据转换为 JSON,然后在 JavaScript 中使用?【英文标题】:How to convert Oracle data to JSON and then use in JavaScript? 【发布时间】:2016-04-28 00:21:02 【问题描述】:环境是:Oracle APEX v4.2.2 / DB是Oracle 11gR2 / 浏览器是:IE11
我目前正在使用 Oracle APEX v4.2.2 开发一个应用程序,我需要在表中获取数据,并将其转换为 JSON。然后,我需要获取此 JSON 数据并在 javascript 中使用它,在我的一个页面中使用它来生成 SVG 图。
基于以上内容,在 Oracle APEX 中,我如何才能最好地解决上述要求,即:
1) 将基于特定 SQL 标准的 Oracle 表数据转换为 JSON 的最佳工具/方法?
2) 然后如何在 APEX 页面中使用此 JSON 数据,以便在 JavaScript 函数中使用?
我想我不确定的主要领域是如何将此表数据转换为 JSON,然后如何将此 JSON 数据传递给 JavaScript 函数。
【问题讨论】:
尝试分解这个问题并针对每个问题提出单独的问题。 【参考方案1】:1) 基于某个 SQL 转换 Oracle 表数据的最佳工具/手段 JSON 的标准?
假设您熟悉 JSON 概念(例如,对象、列表等);这个PL/JSON 库非常全面,可以从 SQL 转换为 JSON,反之亦然。
在我处理的一个案例中,我只需要将库从 JSON 转换为 SQL 表。为了将 SQL 转换为 JSON(将 SQL 表发送到 MongoDB (JSON)),一个简单的游标对我有用:
FOR i IN (SELECT COL1, COL2,... COLn FROM tab)
LOOP
content := '"COL1":"'||COL1||'", "COL2":"'||COL2||'", .... "COLN":"'||COLN||'"';
//do something
END LOOP;
您可以将整个表连接成一个列表[.., ..., ... ..]
并存储在CLOB列中
2) 然后如何在 APEX 页面中使用此 JSON 数据,以供使用 在 javascript 函数中。
所以 JSON 集合现在存储在 CLOB 类型的 SQL 表列中。您可以将该列的值传递给 javaScript 变量。
var text = $v(clob_col);
但是由于它是作为文本存储的,所以需要使用语法将其转换为对象
var obj = JSON.parse(text);
更多关于here
【讨论】:
【参考方案2】:1) 基于某个 SQL 转换 Oracle 表数据的最佳工具/手段 JSON 的标准?
您是否尝试在 Application Express 4.2 中使用 RESTful Web 服务,通过使用它,您可以创建一个基于 pl/sql 或 sql 生成 json 输出的小型 Web 服务。然后您可以在您的应用程序或其他应用程序中通过 javascript 使用它。 请查看官方 oracle 文档 “在 Application Express 4.2 中创建和使用 RESTful Web 服务”
2) 然后如何在 APEX 页面中使用此 JSON 数据,以供使用 在 javascript 函数中
通过使用类似于下面的代码,您可以使用该 Web 服务在您的应用程序中使用数据
<div id="id01"></div>
<script>
var xmlhttp = new XMLHttpRequest();
var url = "myTutorials.txt or http://www.w3schools.com/json/json_http.asp";
xmlhttp.onreadystatechange = function()
if (xmlhttp.readyState == 4 && xmlhttp.status == 200)
var myArr = JSON.parse(xmlhttp.responseText);
myFunction(myArr);
;
xmlhttp.open("GET", url, true);
xmlhttp.send();
function myFunction(arr)
var out = "";
var i;
for(i = 0; i < arr.length; i++)
out += '<a href="' + arr[i].url + '">' +
arr[i].display + '</a><br>';
document.getElementById("id01").innerhtml = out;
</script>
【讨论】:
以上是关于如何将 Oracle 数据转换为 JSON,然后在 JavaScript 中使用?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 jquery 将 Div 数据转换为 json 格式
如何将格式化文本存储在 oracle 表中并将其加载回 json?