JSON-RDF4J/Sesame 中无缩进、空格或换行的 LD 序列化字符串
JSON-LD serialization string without indentation, spaces or line breaks in RDF4J / Sesame
我正在尝试将模型序列化为 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_PRETTY
的 RDFFormat
,它会给我所需的输出格式。它看起来类似于:
{
"@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 字符串时,它会抛出此错误:Invalid BSON field name
。这是序列化问题还是我构建的模型问题?
编辑2号:
例如,上面的代码可以完美地处理 Turtle 格式。我遇到这个问题只是 JSON-LD and RDFJSON.
这是可能的,通过将 BasicWriterSettings.PRETTY_PRINT
选项设置为 true
:
rdfWriter.getWriterConfig().set(BasicWriterSettings.PRETTY_PRINT, true);
不知道 MongoDB 问题,听起来应该是一个单独的问题。
我正在尝试将模型序列化为 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_PRETTY
的 RDFFormat
,它会给我所需的输出格式。它看起来类似于:
{
"@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 字符串时,它会抛出此错误:Invalid BSON field name
。这是序列化问题还是我构建的模型问题?
编辑2号: 例如,上面的代码可以完美地处理 Turtle 格式。我遇到这个问题只是 JSON-LD and RDFJSON.
这是可能的,通过将 BasicWriterSettings.PRETTY_PRINT
选项设置为 true
:
rdfWriter.getWriterConfig().set(BasicWriterSettings.PRETTY_PRINT, true);
不知道 MongoDB 问题,听起来应该是一个单独的问题。