gpt4 book ai didi

jquery - 从existDB请求JSON

转载 作者:行者123 更新时间:2023-12-01 07:43:10 26 4
gpt4 key购买 nike

我对 eXistDB 相当陌生,但我正在尝试用它构建一个小应用程序。

我正在使用一个 JavaScript 示例,该示例在需要时通过 jQuery 请求现有的 JSON 文件,代码如下:

$.getJSON('path/to/file.json').
done(function(data) {

$.each(data, function(key, zone) {
addRegion(zone, element);
});
});

只要 JSON 文件存在,无论 eXistDB 如何,此操作都有效。我现在想要的不是加载现有的 JSON 文件,而是调用像 app:getJSON 这样的 eXist 函数,它返回动态生成的 JSON 对象。我在这里读了一些关于 eXists JSON 序列化器的信息 http://exist-db.org/exist/apps/wiki/blogs/eXist/XQuery31我认为我将设法在 XQuery 函数中生成并返回 JSON 对象,但我不知道如何通过 JavaScript(或此处的 JQuery)中的 URL 调用此类函数。

我想要的解决方案看起来有点像这样:

Java 脚本:

 $.getJSON('/app-getJSON?parameter1=wert1&parameter2=wert2').
done(function(data) {

$.each(data, function(key, zone) {
addRegion(zone, element);
});
});

然后在我的 app.xql 中我想要这样的东西:

declare function app:getJSON($node as node(), $model as map(*), $parameter1 as xs:string?, $parameter2 as xs:string?){
(:here the JSON Object is generated from the XML collection and returned:)
};

所以问题归结为:是否可以通过 URL 访问 xQuery 函数?如果可以,如何访问?如果没有,我还能如何请求使用 JS/JQuery 从 XML 文件生成的 JSON 数据?我知道这一切都相当模糊,这个问题暴露了我对 eXistDB 有多陌生,但我还找不到我能理解的类似示例。所以也许有人对我有一个想法,即使只是“你应该先读一下这个、这个和这个”。非常感谢。

最佳答案

为了创建返回 JSON 的服务,我建议创建一个独立的 XQuery,例如 getJSON.xq,并将其保存在您的应用程序中。 (您的示例 app:getJSON() 函数的签名表明您计划使用 eXist 的 HTML 模板工具,但该工具实际上用于生成 HTML。)您的 getJSON.xq文件可以简单地包含以下主模块:

xquery version "3.1";

declare namespace output="http://www.w3.org/2010/xslt-xquery-serialization";

declare option output:method "json";
declare option output:media-type "application/json";

let $p1 := request:get-parameter('parameter1', ())
let $p2 := request:get-parameter('parameter2', ())
return
map {
"parameter1": $p1,
"parameter2": $p2
}

将其保存到 /db/apps/getJSON.xq 等集合中,然后您将能够调用 http://localhost:8080/exist/apps/myapp/getJSON.xq?parameter1=wert1&parameter2=wert2并得到以下响应:

{
"parameter1" : "wert1",
"parameter2" : "wert2"
}

注意:此代码假定 eXist v3.x,它添加了对 XQuery 3.1 的 JSON 支持的处理。 eXist 的早期版本可以序列化 JSON,但采用特定于实现的方式。这里使用的 request 模块是 eXist 特定的,因为没有广泛支持的跨平台模块来接收 HTTP 请求;但其他 XQuery 实现有一些变体。

关于jquery - 从existDB请求JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44346806/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com