javascript - application/ld+json与javascript数据交换

标签 javascript jquery json-ld

我有一些 jQuery 代码,它构造了一个名为 myList[] 的数组。该数组在控制台中显示如下:["2 items", "3items", "so on"],因此这部分进展顺利。

<script type="text/javascript">
var myList = [];
function buld myList(){
...
}

我需要将myList[]传递给application/ld+json,例如

<script type="application/ld+json">
{
    "@context": "http://schema.org/",
    "@type": "Recipe",
    "recipeIngredients": myList, //this one doesn't work 
}

..

如何将值从 javascript 传递到 application/ld+json?提前致谢!

最佳答案

请尝试这个:

<script id="myJSONID" type="application/ld+json"></script>

然后:

var myList = [];

function buildMyList() {
    return ["2 items", "3items", "so on"];
}

$("#myJSONID").text(function() {
    return JSON.stringify({
        "@context": "http://schema.org/",
        "@type": "Recipe",
        "recipeIngredient": buildMyList()
    });
});

或者:

<script type="text/javascript">
  var myList = [];    
  function buildMyList() {
      return ["2 items", "3items", "so on"];
  }

  var el = document.createElement('script');
  el.type = 'application/ld+json';

  el.text = JSON.stringify({
        "@context": "http://schema.org/",
        "@type": "Recipe",
        "recipeIngredient": buildMyList()
    });

  document.querySelector('body').appendChild(el);
</script>

演示: https://jsfiddle.net/iRbouh/9po7dtg4/

注意:请确保将 recipeIngredients 更改为 recipeIngredient(单数)。 (谢谢@AlexKudryashev)。

关于javascript - application/ld+json与javascript数据交换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38437546/

相关文章:

javascript - 如何降低图像加载的显着性?

javascript - 在改变 Angular 数组时设置 <tr> 颜色

javascript - 无需刷新页面即可检测到cookie已被删除

javascript - 动态重新渲染 Javascript 代码

schema - JSON-LD 架构与 Facebook Pixel 发生冲突

node.js - 使用node.js从HTML解析JSON-LD微格式?

javascript - 如何获取正在触摸特定 Sprite 的目标

javascript - jQuery - 在 mousedown 上触发常规函数调用

JQuery 模态对话框 - 销毁还是关闭?

javascript - 在 Blogger JSON-LD 模板中使用变量