在您的数据中添加一个“ @context”条目。
{ "name" : "Andreas", "age" : 20, "profession" : "student", "personalWebsite" : "example.com", "@context":"http://schema.org/"}您的JSON-LD处理器将完成其余工作(从0.9版开始)
作为测试,您可以将json转换为rdf。
package overflow.stack2449461;import java.io.ByteArrayInputStream;import java.io.InputStream;import java.io.StringWriter;import java.util.Collection;import org.eclipse.rdf4j.model.Statement;import org.eclipse.rdf4j.rio.RDFFormat;import org.eclipse.rdf4j.rio.RDFHandlerException;import org.eclipse.rdf4j.rio.RDFParser;import org.eclipse.rdf4j.rio.RDFWriter;import org.eclipse.rdf4j.rio.Rio;import org.eclipse.rdf4j.rio.helpers.StatementCollector;public class Test { @org.junit.Test public void testForYourCode() { String data = "{"name" : "Andreas","age" : 20,"profession" : "student", "personalWebsite" : "example.com","@context": "http://schema.org/"}"; try (InputStream in = new ByteArrayInputStream(data.getBytes("utf-8"))) { String dataAsRdf = readRdfToString(in, RDFFormat.JSONLD, RDFFormat.NTRIPLES, ""); System.out.println(dataAsRdf); } catch (Exception e) { throw new RuntimeException(e); } } public static String readRdfToString(InputStream in, RDFFormat inf, RDFFormat outf, String baseUrl) { Collection<Statement> myGraph = null; myGraph = readRdfToGraph(in, inf, baseUrl); return graphToString(myGraph, outf); } public static Collection<Statement> readRdfToGraph(final InputStream inputStream, final RDFFormat inf, final String baseUrl) { try { final RDFParser rdfParser = Rio.createParser(inf); final StatementCollector collector = new StatementCollector(); rdfParser.setRDFHandler(collector); rdfParser.parse(inputStream, baseUrl); return collector.getStatements(); } catch (final Exception e) { throw new RuntimeException(e); } } public static String graphToString(Collection<Statement> myGraph, RDFFormat outf) { StringWriter out = new StringWriter(); RDFWriter writer = Rio.createWriter(outf, out); try { writer.startRDF(); for (Statement st : myGraph) { writer.handleStatement(st); } writer.endRDF(); } catch (RDFHandlerException e) { throw new RuntimeException(e); } return out.getBuffer().toString(); }}使用pom.xml
<dependency> <groupId>org.eclipse.rdf4j</groupId> <artifactId>rdf4j-runtime</artifactId> <version>2.2</version> <type>pom</type> </dependency> <dependency> <groupId>com.github.jsonld-java</groupId> <artifactId>jsonld-java</artifactId> <version>0.10.0</version> </dependency>
它将您的json字符串打印为rdf NTRIPLES
_:b0 <http://schema.org/age> "20"^^<http://www.w3.org/2001/XMLSchema#integer> ._:b0 <http://schema.org/name> "Andreas" ._:b0 <http://schema.org/personalWebsite> "example.com" ._:b0 <http://schema.org/profession> "student" .



