我可以在JSON-LD中使用变量吗?

时间:2019-07-30 06:42:12

标签: html schema.org json-ld structured-data

我正在尝试在FAQ页面中实现Schema.org,但是似乎重复了模式中的所有问题和答案。

所以我想知道是否可以在JSON-LD中调用变量或类以从正文中检索问题和答案。

类似于以下代码:

<head>
<script type="application/ld+json">
    {
      "@context": "https://schema.org",
      "@type": "FAQPage",
      "url": "https://www.example.com",
      "mainEntity": [{
        "@type": "Question",
        "name": {{question}},
        "acceptedAnswer": {
          "@type": "Answer",
          "text": {{answer}}
        }
      }]
      }
    </script>
</head>
<body>
    <h3 class="question">This is question number one?</h3>
    <p id="answer"> This is the answer to Q1.</p>

    <h3 class="question">This is question number 2?</h3>
    <p class="answer">This is the answer to Q2.</p>
</body>

1 个答案:

答案 0 :(得分:2)

否,JSON-LD不允许这样做。

如果您不想重复您的内容,则可以使用Microdata或RDFa。使用这些语法,可以将属性添加到现有HTML元素(details)。

使用RDFa,它看起来像:

<body typeof="schema:FAQPage">

  <link property="schema:url" href="https://www.example.com/" />

  <article property="schema:mainEntity" typeof="schema:Question">

    <h3 property="schema:name">This is question number one?</h3>

    <div property="schema:acceptedAnswer" typeof="schema:Answer">
      <p property="schema:text">This is the answer to Q1.</p>
    </div>

  </article>

</body>

(通过使用RDFa的vocab属性,例如在html元素上,您可以省略schema:前缀;通过使用RDFa的prefix属性,您可以定义一个不同的,例如较短,前缀)