gpt4 book ai didi

java - RDF4J/Sesame 中没有缩进、空格或换行符的 JSON-LD 序列化字符串

转载 作者:行者123 更新时间:2023-12-01 08:56:11 29 4
gpt4 key购买 nike

我正在尝试将模型序列化为 JSON-LD 并使用 RDF4J 将其存储在字符串变量中。

我的代码如下所示:

public void storeAsString(Model model) {
StringWriter stringWriter = new StringWriter();
RDFWriter rdfWriter = Rio.createWriter(RDFFormat.JSONLD, stringWriter);

rdfWriter.getWriterConfig().set(JSONLDSettings.JSONLD_MODE, JSONLDMode.COMPACT);
rdfWriter.getWriterConfig().set(JSONLDSettings.OPTIMIZE, true);

Rio.write(model, rdfWriter);
String output = stringWriter.toString();
}

它给了我一个 JSON-LD 字符串,但没有任何缩进、空格或换行符,使得 System.out.println(output) 不可读。它看起来像这样:

{"@context":"http://schema.org/","type":"Person","jobTitle":"Professor","name":"Jane Doe","telephone":"(425) 123-4567","url":"http://www.janedoe.com"}

在 Apache Jena 中,有一个名为 JSONLD_PRETTYRDFFormat,它可以为我提供所需的输出格式。它看起来类似于:

{
"@context": "http://schema.org/",
"@graph": [
{
"id": "_:b0",
"type": "Person",
"jobTitle": "Professor",
"name": "Jane Doe",
"telephone": "(425) 123-4567",
"url": "http://www.janedoe.com"
}
]
}

这也可以通过 Eclipse RDF4J 实现吗?

提前谢谢您!

编辑:当我尝试使用 MongoDB 存储 JSON-LD 字符串时,它会抛出此错误:无效的 BSON 字段名称。这是序列化问题还是我构建的模型问题?

编辑 2:例如,上面的代码可以完美地处理 Turtle 格式。我仅在使用 JSON-LD RDFJSON 时遇到此问题。

最佳答案

通过将 BasicWriterSettings.PRETTY_PRINT 选项设置为 true 可以实现此目的:

rdfWriter.getWriterConfig().set(BasicWriterSettings.PRETTY_PRINT, true);

不知道 MongoDB 问题,听起来它应该是一个单独的问题。

关于java - RDF4J/Sesame 中没有缩进、空格或换行符的 JSON-LD 序列化字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42026277/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com