JSON.只对键值进行字符串化



我想比较一个对象和一个字符串。为此,我使用JSON。对对象(日期)进行字符串化。我怎样才能只提取值?我可以拼接结果,但我想到了一个更快的解决方案。还有其他可能的方法如何从{"date":"10.09.2021"}中得到"10.09.2021"吗?

var graph = {
"nodes": [
{
"id": 1,
"dates": [
{
"date": "10.09.2021"
},
{
"date": "12.10.2021"
}
]
}, {
"id": 2,
"dates": [
{
"date": "20.09.2021"
},
{
"date": "25.09.2021"
}
]
}, {
"id": 3,
"dates": [
{
"date": "07.10.2021"
},
{
"date": "12.10.2021"
}
]
}
]
}

graph.nodes.forEach(element => {
element.dates.forEach(date => {
strDate = JSON.stringify(date)
console.log(strDate) // {"date":"dd.mm.yyyy"}

//how to extract "dd.mm.yyyy" only?

if (strDate === "12.10.2021") {
console.log("true")
}
})
})

在stringify中,您只需要访问在forEach中接收到的日期对象的键。请参阅下面的代码strDate = JSON.stringify(date.date)或strDate = JSON.stringify(date['date'])

你根本不需要使用stringify。就把它当作普通对象。

var graph = {
"nodes": [
{
"id": 1,
"dates": [
{
"date": "10.09.2021"
},
{
"date": "12.10.2021"
}
]
}, {
"id": 2,
"dates": [
{
"date": "20.09.2021"
},
{
"date": "25.09.2021"
}
]
}, {
"id": 3,
"dates": [
{
"date": "07.10.2021"
},
{
"date": "12.10.2021"
}
]
}
]
}

graph.nodes.forEach(element => {
element.dates.forEach(date => {
strDate = date.date;
console.log(date.date) // {"date":"dd.mm.yyyy"}

//how to extract "dd.mm.yyyy" only?

if (strDate === "12.10.2021") {
console.log("true")
}
})
})

最新更新