2016-05-11 20 views
1

私の方法でjsonstringを取得したい。 I'amこのしよう:私はbasexクエリ・プロセッサにXQueryを実行すると、私はこれをどのように行うことができますJavaでxqueryからjsonを取得するにはどうすればよいですか?

{ 
    "a":"asd" 
} 

を取得

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

:?

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(); 

が、例外を取得しますかありがとう!

答えて

0

JSON変換はXQueryの標準機能ではありません。 BaseXはそれをベンダー拡張として実装しています。 https://www.w3.org/TR/xquery-31/を参照してください。 JSON出力は含まれていません。

あなたは使用しているXQuery実装ではありません。 特定のXQueryプロセッサを使用してJSONを生成する方法の形で質問を表現することをお勧めします。

純粋なXQueryでできることは、XQueryで実装され、テキストとして出力されるJsonに変換するモジュールを見つけたり書き込んだりすることです。

関連する問題