创建JSON-LD上下文:缺少属性

时间:2015-03-15 16:42:24

标签: jsonschema json-ld

我尝试为项目创建自己的Context。但是,使用Compact后,某些属性将丢失。请看这个例子:

{
  "@context":
  {
    "myvocab": "http://localhost:8080/schema.json#",
    "Information":
    {
      "@id": "myvocab:Information",
      "@type": "@id",
      "name": "http://schema.org/name",
      "active": "http://schema.org/Boolean"
    }
  },

  "Information": [
   {
     "@type": "myvocab:Information",
     "name": "myCustomName",
     "active": "true"    
   }
  ]
}

此示例也可以在JSON-LD Playground上找到。 压缩之后,我看不到属性" name"和"活跃"他们将被删除。在操场上也是如此。但是,我在@context部分没有出错,所以我认为它是正确的。

请帮助我理解为什么缺少这些特性以及解析后我能做些什么来正确看待它们。

提前致谢!

1 个答案:

答案 0 :(得分:1)

您的上下文的嵌套是错误的。您错误地制作了name映射的activeInformation属性,而不是自己制定术语映射。这是固定的例子:

{
  "@context":
  {
    "myvocab": "http://localhost:8080/schema.json#",
    "Information":
    {
      "@id": "myvocab:Information",
      "@type": "@id"
    },
    "name": "http://schema.org/name",
    "active": "http://schema.org/Boolean"
  },
  "Information": [
   {
     "@type": "myvocab:Information",
     "name": "myCustomName",
     "active": "true"    
   }
  ]
}

您可能还想检查active的映射。您将其映射到类型而不是将其映射到属性(属性在Schema.org中小写,类/类型大写)。