You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Ajv验证LD+JSON中@mainEntity数组的多个FAQ条目?

如何修改FAQ Schema以支持验证@mainEntity数组中的多个问答条目

完全可行,只需要调整Schema中@mainEntity字段的类型定义,从单个对象改为数组,并指定数组元素需符合问答条目的结构规则。

修改步骤示例:

假设你当前的FAQ Schema中@mainEntity是这样定义的:

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "@context": { "const": "https://schema.org" },
    "@type": { "const": "FAQPage" },
    "mainEntity": {
      "type": "object",
      "properties": {
        "@type": { "const": "Question" },
        "name": { "type": "string" },
        "acceptedAnswer": {
          "type": "object",
          "properties": {
            "@type": { "const": "Answer" },
            "text": { "type": "string" }
          },
          "required": ["@type", "text"]
        }
      },
      "required": ["@type", "name", "acceptedAnswer"]
    }
  },
  "required": ["@context", "@type", "mainEntity"]
}

只需要把mainEntity的类型从object改为array,并通过items字段指向原有的问答条目结构:

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "@context": { "const": "https://schema.org" },
    "@type": { "const": "FAQPage" },
    "mainEntity": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "@type": { "const": "Question" },
          "name": { "type": "string" },
          "acceptedAnswer": {
            "type": "object",
            "properties": {
              "@type": { "const": "Answer" },
              "text": { "type": "string" }
            },
            "required": ["@type", "text"]
          }
        },
        "required": ["@type", "name", "acceptedAnswer"]
      },
      "minItems": 1 // 可选:限制数组至少有一个问答条目
    }
  },
  "required": ["@context", "@type", "mainEntity"]
}

验证逻辑说明:

修改后,Ajv会自动遍历@mainEntity数组中的每个元素,检查是否符合items中定义的问答条目规则。只要数组里的每个条目都包含必填字段、类型正确,就能通过验证;如果有任何一个条目不符合规则,Ajv会返回对应的错误信息。

你还可以根据需求添加minItems(最小条目数)、maxItems(最大条目数)等关键字,进一步约束数组的长度。

内容的提问来源于stack exchange,提问作者koji

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 19:35:25