我想使用jsonld.js库的expand
和compact
方法,将来自各种来源的数据转换为一个通用格式进行处理。如果我获取源JSON文档,添加@context
,然后通过expand
方法传递它,我就能得到我需要的通用格式。
我找不到解决方案的用例是当多个值需要合并时。例如,schema.org定义了一个PostalAddress
,其中只有一个字段用于streetAddress
,但许多系统将街道地址存储为单独的值(街道号码、街道名称、街道方向...)。为了将传入的数据转换为schema.org格式,我需要一种方法在我的@context
中指示多个字段组成streetAddress
,并按正确顺序排列。
压缩文件
{
"@context": {
"displaName": "http://schema.org/name",
"website": "http://schema.org/homepage",
"icon": "http://schema.org/image",
"streetNumber": "http://schema.org/streetAddress"
},
"displaName": "John Doe",
"website": "http://example.com/",
"icon": "http://example.com/images/test.png",
"streetNumber": "123",
"streetName": "Main St",
"streetDirection": "South"
}
扩展文档
{
"http://schema.org/name":[
{
"@value":"John Doe"
}
],
"http://schema.org/image":[
{
"@value":"http://example.com/images/test.png"
}
],
"http://schema.org/streetAddress":[
{
"@value":"123"
}
],
"http://schema.org/homepage":[
{
"@value":"http://example.com/"
}
]
}
我已经查看了所有能够找到的JSON-LD规范,并没有发现任何关于使用@context
分割或连接值的方法。
是否有人知道一种将多个值映射到一个上下文属性中,并按照正确顺序可能添加空格的方法。我还需要找到一个解决方案,用于反向场景,在该场景中,我需要将一个字段拆分为多个值,以正确的顺序。
注意:即使我将所有三个属性都映射到streetAddress
,这些值仍将包含在数组中,但无法保证它们的顺序是正确的。
@context
拥有完全控制权? - Val