使用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字符串。

希望有所帮助。

+0

我将不得不给它一个尝试。我在前面搜索时看到了mljson,但并不确定。谢谢您的帮助。 – bjo

+0

你打赌。如果遇到任何MLJSON问题或者有任何问题,请随时在GitHub上提交问题(我是该项目的主要开发人员)。 –