如何将JENA Sparql Query ResultSet保存为JSON?

Pat*_*ady 3 java json sparql jena

如何将JENA ResultSet存储为JSON格式的字符串?我目前只能将ResultSet输出到System.out控制台,但我无法将其保存到java String.这是我所在的一个例子:

QueryExecution qexec = QueryExecutionFactory.sparqlService(endpoint, query);
ResultSet results = qexec.execSelect();
// the following prints out JSON in the System.out console:
ResultSetFormatter.outputAsJSON(System.out, results);
// but how do I save it as a String?
// ie.  
String json = ResultSetFormatter.outputAsJSON(System.out, results);
// obviously that doesn't work, but how would one get the equivalent working version?
Run Code Online (Sandbox Code Playgroud)

我希望能够将JSON变量发送到另一个方法来执行一些工作.

提前致谢!

小智 6

尝试写入a ByteArrayOutputStream并将其中的字节转换为aString

QueryExecution qexec = QueryExecutionFactory.sparqlService(sparqlEndpointQuery, query);
ResultSet results = qexec.execSelect();

// write to a ByteArrayOutputStream
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();

ResultSetFormatter.outputAsJSON(outputStream, results);

// and turn that into a String
String json = new String(outputStream.toByteArray());

System.out.println(json);
Run Code Online (Sandbox Code Playgroud)