栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Java中将JSON序列化为JSON-LD的代码示例?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java中将JSON序列化为JSON-LD的代码示例?

在您的数据中添加一个“ @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" .


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/425943.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号