[英]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:00
到2020-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.