如何修正JSON-LD语法以实现预期的属性值展开效果?
解决方案
要实现仅指定属性值的URI展开,同时避免属性名和类型被错误扩展,只需调整@context的配置,无需使用@vocab:
正确的JSON-LD代码
{ "@context": { "number": "locator:requirements/number/", "var": "locator:models/", "operator": {"@container": "@list"}, "target": {"@container": "@list"}, "variable": {"@container": "@list"} }, "@graph": [ { "@id": "number:001", "target": { "@type": "float", "@value": 22.6 }, "variable": { "@id": "var:StarTracker/AngleToSun" }, "operator": "minimum" } ] }
配置说明
- 前缀映射:仅在
@context中定义number和var两个前缀,确保只有使用这些前缀的@id值会被展开为完整URI(比如number:001→locator:requirements/number/001,var:StarTracker/AngleToSun→locator:models/StarTracker/AngleToSun)。 - 容器配置:为
operator、target、variable添加"@container": "@list",强制这些属性的展开结果以数组形式呈现,完全匹配你期望的输出结构。 - 避免全局扩展:不设置
@vocab,这样operator、target等属性名以及float类型都不会被错误扩展,保持原样。
展开后的结果
[ { "@id": "locator:requirements/number/001", "operator": [ { "@value": "minimum" } ], "target": [ { "@type": "float", "@value": 22.6 } ], "variable": [ { "@id": "locator:models/StarTracker/AngleToSun" } ] } ]
内容的提问来源于stack exchange,提问作者rocksNwaves
相关产品推荐
相关产品推荐

