【发布时间】:2016-03-11 08:41:31
【问题描述】:
我尝试将JSON 转换为JSON-LD,并想知道是否可以使用JSON-LD 扩展算法来创建我的转换器。然后我可以将我的模式指定为上下文并运行扩展算法来进行转换。问题是我无法弄清楚如何在上下文中定义新的值对象,以便扩展算法起作用。
假设我有这个:
{
"timestamp": "2016-01-08T11:01:38Z"
}
我想得到这个:
{
"prefix:time": {"prefix:start": "2016-01-08T11:01:38Z"}
}
我已经在 JSON-LD 操场上尝试过,如下所示:
{
"@context": {
"timestamp": {
"@id": "prefix:time",
"@value": {"prefix:start": "@value"}
}
},
"timestamp": "2016-01-08T11:01:38Z"
}
但展开后的结果是这样的:
[
{
"prefix:time": [
{
"@value": "2016-01-08T11:01:38Z"
}
]
}
]
有没有办法使用JSON-LD 扩展(或其他)算法将值替换为新的JSON 对象?
【问题讨论】:
-
这似乎用 JSON-LD 算法是不可能的。我继续使用 JSON 到 JSON 转换库 - Jolt 来完成这项工作。它也有一些限制,但可以涵盖一些简单的情况。但是,请记住,Jolt 不能用于更改 JSON 文档中的值,只能将它们移动到不同的位置。 github.com/bazaarvoice/jolt
-
"它也有一些限制,但可以涵盖一些简单的情况。但是请记住,Jolt 不能用于更改 JSON 文档中的值,只能将它们移动到不同的位置。"是的,就是这个想法。 “更改值”是业务逻辑,可以在 Jolt 之后实现,也可以作为自定义 Jolt 转换实现。
标签: json data-conversion expansion json-ld linked-data