JSON-LD 取景单对象数组
JSON-LD framing single object arrays
有没有办法将单个对象强制到一个数组?每次都要测试对象类型,真的很烦人。
我试过这个上下文,但它不起作用。还有example in JSON-LD Playground。有了这个上下文,资源就变成了单个对象,而不是像您期望的那样包含一个对象的数组。
{
"@context": {
"member": {
"@id": "http://xmlns.com/foaf/0.1/member",
"@container": "@list"
},
"ex": "http://example.org/ex#",
"foaf": "http://xmlns.com/foaf/0.1/",
"owl": "http://www.w3.org/2002/07/owl#",
"rdf": "http://www.w3.org/1999/02/22-rdf-syntax-ns#",
"rdfs": "http://www.w3.org/2000/01/rdf-schema#",
"xsd": "http://www.w3.org/2001/XMLSchema#",
"frapo": "http://purl.org/cerif/frapo/"
},
"@type": "foaf:Organisation",
"member": []
}
结果:
... {
"@id": "ex:Organization_1",
"@type": "foaf:Organisation",
"foaf:member": {
"@id": "ex:Person_1",
"@type": "foaf:Person",
"foaf:name": "Bill"
}
} ...
它应该是什么:
"foaf:member": [{ "@id": ... }]
兼容 JSON-LD 处理器允许您在处理 JSON-LD 时设置几个选项:http://www.w3.org/TR/json-ld-api/#the-jsonldoptions-type
只需将 compactArrays
标志设置为 false
。
使用 "@container": "@set"
而不是 @list
。
@list
意味着顺序——而 @set
则不然。仅供参考,压缩数据时可能(算法)未选择 "member" 项,因为您的输入与 @list
不匹配。如果您的数据与上下文中的术语不匹配,将使用匹配的替代术语(或完整的 url)。简而言之,请改用 @set
。
有没有办法将单个对象强制到一个数组?每次都要测试对象类型,真的很烦人。
我试过这个上下文,但它不起作用。还有example in JSON-LD Playground。有了这个上下文,资源就变成了单个对象,而不是像您期望的那样包含一个对象的数组。
{
"@context": {
"member": {
"@id": "http://xmlns.com/foaf/0.1/member",
"@container": "@list"
},
"ex": "http://example.org/ex#",
"foaf": "http://xmlns.com/foaf/0.1/",
"owl": "http://www.w3.org/2002/07/owl#",
"rdf": "http://www.w3.org/1999/02/22-rdf-syntax-ns#",
"rdfs": "http://www.w3.org/2000/01/rdf-schema#",
"xsd": "http://www.w3.org/2001/XMLSchema#",
"frapo": "http://purl.org/cerif/frapo/"
},
"@type": "foaf:Organisation",
"member": []
}
结果:
... {
"@id": "ex:Organization_1",
"@type": "foaf:Organisation",
"foaf:member": {
"@id": "ex:Person_1",
"@type": "foaf:Person",
"foaf:name": "Bill"
}
} ...
它应该是什么:
"foaf:member": [{ "@id": ... }]
兼容 JSON-LD 处理器允许您在处理 JSON-LD 时设置几个选项:http://www.w3.org/TR/json-ld-api/#the-jsonldoptions-type
只需将 compactArrays
标志设置为 false
。
使用 "@container": "@set"
而不是 @list
。
@list
意味着顺序——而 @set
则不然。仅供参考,压缩数据时可能(算法)未选择 "member" 项,因为您的输入与 @list
不匹配。如果您的数据与上下文中的术语不匹配,将使用匹配的替代术语(或完整的 url)。简而言之,请改用 @set
。