通过 Java 的 Amazon Neptune SPARQL 查询:我可以获得原始 JSON 响应吗?

Amazon Neptune SPARQL query through Java: Can I get the raw JSON response?

使用 Java API for Amazon Neptune SPARQL SELECT 查询的文档仅展示了如何遍历 TupleQuery 的结果。 amazon docs

是否有办法获取 原始 JSON 响应,使其与过去使用 REST 接口调用的代码兼容?

如评论中所述,Java API 仅使用 JSON REST 响应并将其作为 TupleQueryResult 对象呈现给您。

如果您希望以某种方式接收原始 JSON,您可以直接使用任何 Java REST/HTTP 客户端库调用 Neptune REST 端点。

或者,也可以re-convert将你通过Rdf4j API 返回的结果转为JSON(或任何其他序列化格式),如下:

public static void main( String[] args )
    {
        String sparqlEndpoint = "https://your-neptune-endpoint:port/sparql";
        Repository repo = new SPARQLRepository(sparqlEndpoint);
        repo.initialize();

        try (RepositoryConnection conn = repo.getConnection()) {
           String queryString = "SELECT ?s ?p ?o WHERE { ?s ?p ?o } limit 10";

           TupleQuery tupleQuery = conn.prepareTupleQuery(QueryLanguage.SPARQL, queryString);

           TupleQueryResultHandler jsonWriter = new SPARQLResultsJSONWriter(System.out);
           tupleQuery.evaluate(jsonWriter);
        }
    }

当然这比直接使用 REST 客户端效率低,因为您基本上是 de-serializing 然后立即 re-serializing 结果,但是如果您已经无论如何都使用 Rdf4j。