发布
社区首页 >问答首页 >如何在java中从xquery获取json?

如何在java中从xquery获取json?
EN

Stack Overflow用户
提问于 2016-05-11 22:46:17
回答 1查看 323关注 0票数 1

我想在我的方法中获得jsonstring。我试着这样做:

代码语言:javascript
代码运行次数:0
复制
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();

但是得到了异常:

代码语言:javascript
代码运行次数:0
复制
javax.xml.xquery.XQException: The prefix "output" is unknown in this static context.
    net.xqj.basex.bin.I.getNamespaceURI(Unknown Source)

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

代码语言:javascript
代码运行次数:0
复制
{
  "a":"asd"
}

我该怎么做呢?谢谢!

EN

回答 1

Stack Overflow用户

发布于 2016-08-05 14:36:16

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

您还没有正在使用的XQuery实现。我建议将问题重新表述为如何使用特定的XQuery处理器生成JSON。

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37166110

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档