Github user kinow commented on the issue: https://github.com/apache/jena/pull/114 +1 for the current draft I would use it [here](https://github.com/kinow/jena/blob/a948f300fb40701e49e83db9d03e5d83da8145f6/jena-arq/src/main/java/org/apache/jena/sparql/engine/QueryExecutionBase.java#L358 and [here](https://github.com/kinow/jena/blob/a948f300fb40701e49e83db9d03e5d83da8145f6/jena-arq/src/main/java/org/apache/jena/sparql/engine/JsonIterator.java#L71). This way instead of looking only at the literals, we'd have the output from the table above. So far I have just two unit tests in my working copy ```java @Test public void testExecJson() { // JENA-632 Query query = QueryFactory.create("JSON { \"s\": ?s , \"p\": ?p , \"o\" : ?o } " + "WHERE { ?s ?p ?o }", Syntax.syntaxARQ); try ( QueryExecution qexec = QueryExecutionFactory.create(query, m) ) { JsonArray jsonArray = qexec.execJson(); assertNotNull( jsonArray ); assertEquals(3, jsonArray.size()); } } @Test public void testExecJsonItems() { // JENA-632 Model model = ModelFactory.createDefaultModel(); { Resource r = model.createResource(AnonId.create("s")); Property p = model.getProperty(""); RDFNode node = ResourceFactory.createTypedLiteral("123", XSDDatatype.XSDdecimal); model.add(r, p, node); r = model.createResource(AnonId.create("s")); p = model.getProperty(""); node = ResourceFactory.createTypedLiteral("abc", XSDDatatype.XSDstring); model.add(r, p, node); r = model.createResource(AnonId.create("s")); p = model.getProperty(""); node = ResourceFactory.createLangLiteral("def", "en"); model.add(r, p, node); } Query query = QueryFactory.create("JSON { \"s\": ?s , \"p\": ?p , \"o\" : ?o } " + "WHERE { ?s ?p ?o }", Syntax.syntaxARQ); try ( QueryExecution qexec = QueryExecutionFactory.create(query, model) ) { Iterator<JsonObject> execJsonItems = qexec.execJsonItems(); while(execJsonItems.hasNext()) { JsonObject next = execJsonItems.next(); System.out.println(next); } } ``` Where the second test is doing - more or less - the same example you provided in your previous comment. Once we have the conversion in place, I will update it to confirm I get what's expected. Then after that I was thinking about quickly running with jacoco to see how much of this PR is being tested.
---