繁体   English   中英

我如何从java中的xquery获取json?

[英]How can i get json from xquery in java?

我想在我的方法中获取jsonstring。 我正在尝试这个:

XQConnection conn = baseXDataSource.getConnection();
XQPreparedExpression expr = conn.prepareExpression
        ("declare option output:method 'json'; \n" +
                "<json objects=\"json\">\n" +
                "<a>asd</a>\n" +
                "</json>");

XQSequence result1 = expr.executeQuery();
result1.next();
XMLStreamReader result = result1.getSequenceAsStream();
Transformer transformer = TransformerFactory.newInstance().newTransformer();
transformer.setOutputProperty(OutputKeys.INDENT, "yes");
StringWriter stringWriter = new StringWriter();
transformer.transform(new StAXSource(result), new StreamResult(stringWriter));
return stringWriter.toString();

但得到例外:

javax.xml.xquery.XQException: The prefix "output" is unknown in this static context.
    net.xqj.basex.bin.I.getNamespaceURI(Unknown Source)

如果我在basex查询处理器中执行xquery,我得到

{
  "a":"asd"
}

我怎样才能做到这一点? 谢谢!

JSON转换不是XQuery标准功能。 请参阅BaseX将其实现为供应商扩展。 有关兼容处理器必须支持的内容,请参阅https://www.w3.org/TR/xquery-31/ 不包括JSON输出。

你还没有使用的XQuery实现。 我建议以如何使用您的特定XQuery处理器生成JSON的形式重新提出问题。

你可以在纯XQuery中做的最好的事情就是找到或编写一个转换为Json的模块,在XQuery中实现并作为文本输出。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM