使用JSON使用XQuery
问题描述:
页
所以我用一个jQuery插件(JSONP)进行跨域调用的API,并获取JSON数据备份。我需要以某种方式将这些数据存入我的XQuery页面。我使用Marklogic服务器来存储我所有的XML数据,我知道它有一些XDMP函数来处理JSON数据,它将JavaScript从JSON获取到XQuery,这让我很痛苦。使用JSON使用XQuery
关于如何去做这件事的任何想法?
答
我不是100%肯定是什么给你的问题,但将尝试提供了一个解决方案,希望能得到你的方式。
有GitHub上的一个开源项目叫做MLJSON(https://github.com/marklogic/mljson/wiki)。它可以接受一个JSON字符串,解析它并返回一个MarkLogic可以轻松使用的XML文档。
如果了解XML的内部结构没有吸引力(即使它非常简单,但没有记录),该项目还包括一个路径解析器,用于从解析的JSON文档中提取位。下面是需要一定的JSON发送到服务器作为POST或GET参数,分析它,并拉出值的快速出样的XQuery页:
xquery version "1.0-ml";
import module namespace json="http://marklogic.com/json" at "lib/json.xqy";
import module namespace path="http://marklogic.com/mljson/path-parser" at "lib/path-parser.xqy";
let $jsonString := xdmp:get-request-field("json")
let $jsonXML := json:parse($jsonString)
let $firstName := path:select($jsonXML, "author.firstName", "json")
return concat("First name: ", $firstName)
如果上面的脚本传递一个JSON文件,如:
{
"author": {
"firstName": "Noam",
"lastName": "Chomsky"
}
}
它将返回字符串:“名:Noam”。
MLJSON有很多,我不会去在这里的其他功能,但会提及它具有以下功能:构建JSON对象,数组等和序列化出来作为一个JSON字符串。
希望有所帮助。
我将不得不给它一个尝试。我在前面搜索时看到了mljson,但并不确定。谢谢您的帮助。 – bjo
你打赌。如果遇到任何MLJSON问题或者有任何问题,请随时在GitHub上提交问题(我是该项目的主要开发人员)。 –