繁体   English   中英

在 Javascript 中解析 Json - Google 标签管理器

[英]Parse Json in Javascript - Google Tag Manager

我确实有那个脚本:

function() {
  var publishedDate = "";
  var yoastInfo = JSON.parse(document.head.querySelector('.yoast-schema-graph.yoast-schema-graph--main').innerHTML);
  vars = yoastInfo["@graph"];
  for(var i in vars) {
    if(vars[i]['@type'] === 'WebPage') {
      pubDateRaw=(vars[i]['datePublished']);
      break;
    }
  }
  publishedDate.concat(pubDateRaw.substring(0,4),pubDateRaw.substring(5,7),pubDateRaw.substring(8,10));
  return publishedDate;
}

当我运行代码时,它给了我一个""而不是日期。

这是json:

{
  "@context": "https://schema.org",
  "@graph": [   

    {
      "@type": "WebPage",
      "@id": "id234234",
      "url": "https://www.whatevver.com",
      "inLanguage": "de-DE",
      "name": "this is the name",
      "isPartOf": {
        "@id": "id234234
      },
      "primaryImageOfPage": {
        "@id": "id234234"
      },
      "datePublished": "2020-01-14T07:46:12+00:00",
      "dateModified": "2020-01-15T08:04:50+00:00",
      "description": "description "
    },

  ]
}

所以我需要从那个 json 中提取 datePubished。 我的代码有什么问题?

编辑

在你们的帮助下,我制作了这个脚本:

function() {
  var publishedDate = "";
  var yoastInfo = JSON.parse(document.head.querySelector('.yoast-schema-graph.yoast-schema-graph--main').innerHTML); 
  vars = yoastInfo["@graph"];
  for(var i in vars) {
    if(vars[i]['@type'] === 'WebPage') {
      publishedDate=(vars[i]['datePublished']); 
    }
  }



  return publishedDate;
}

现在我需要将日期时间2020-01-14T07:46:12+00:002020-01-14什么是最好的解决方案?

编辑2

在以下位置找到解决方案: 到解决方案

给定 JSON :

{
  "@context": "https://schema.org",
  "@graph": [   

    {
      "@type": "WebPage",
      "@id": "id234234",
      "url": "https://www.whatevver.com",
      "inLanguage": "de-DE",
      "name": "this is the name",
      "isPartOf": {
        "@id": "id234234" // MAKE IT AS A STRING
      },
      "primaryImageOfPage": {
        "@id": "id234234"
      },
      "datePublished": "2020-01-14T07:46:12+00:00",
      "dateModified": "2020-01-15T08:04:50+00:00",
      "description": "description "
    },

  ]
}
function() {
  let publishedDate = "";
  const yoastInfo = JSON.parse(document.head.querySelector('.yoast-schema- 
  graph.yoast-schema-graph--main').innerHTML); // I HOPE YOURE ABLE TO EXTRACT THE JSON HERE IN yoastInfo.
  vars = yoastInfo["@graph"];
  for(var i in vars) {
    if(vars[i]['@type'] === 'WebPage') {
      publishedDate=(vars[i]['datePublished']); // YOU ARE GETTING EMPTY STRING BECAUSE YOU'RE SETTING VARIABLE CALLED 'publishedDate' AND SETTING VALUE IN 'pubDateRaw'.
    }
  }
  return publishedDate;
}

请按照代码中的注释进行澄清。 谢谢 :))

并查看链接以获取更多说明: https : //jsfiddle.net/gahzsrvj/1/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM