簡體   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