如何从JSON到JS获取键的值?

问题描述 投票:0回答:4

我正在开发一个需要从JS输入日期并检查JSON表中日期是什么的应用程序。

如何获取已创建的JS日期字符串(yyyy,mm,dd),并找到相应键的值?

我已经尝试过将字符串字符串化,并通过JS函数推送它。

var d = new Date();

      var date = d.getDate();
      var month = d.getMonth() + 1; 
      var year = d.getFullYear();
      var dateStr = year + "/" + month + "/" + date;
      console.log(dateStr);
      dateJSON = JSON.stringify(dateStr)
      console.log(dateJSON)
      alert(testVar.dateJSON)
var testVar = { //In a JS file
"2019-11-06": "D",
"2019-11-08": "A_con" //continues for a very long time.....
}

对于“ 2019-11-08”,我希望变量“ letterDay”等于“ A_con”。

到目前为止,当我提取“ testVar.dateJSON”时,我的代码返回“ undefined”

javascript html json
4个回答
1
投票

我认为这要简单得多,您的数据密钥为yyyy-mm-dd格式,而您的dateStryyyy/mm/dd格式,这是一个简单的代码段

var testVar = { //In a JS file
  "2019-11-09": "D",
  "2019-11-08": "A_con" //continues for a very long time.....
}
var d = new Date();
var date = d.getDate();
var month = d.getMonth() + 1;
var year = d.getFullYear();

// Your mistake was here, the separators were '/'
var dateStr = year + "-" + month + "-" + date;
console.log(dateStr);

// Get the value dynamically
// when you have a dynamic key use testVar[dateStr]
// testVar.dateStr will literally look for a key called "dateStr" it will not evaluate the value of dateStr
console.log(testVar[dateStr]);

1
投票

您用错误的方式格式化了dateStr变量(用“ /”代替“-”)。

var testVar = { //In a JS file
"2019-11-06": "D",
"2019-11-08": "A_con" //continues for a very long time.....
}

var d = new Date('November 06, 2019 23:15:30');
var day = d.getDate();
var month = d.getMonth() + 1; 
var year = d.getFullYear();
var dateStr = year + "-" + month + "-" + (day > 9 ? day : '0' + day);
console.log(testVar[dateStr]); // D

0
投票

您是否尝试过使用JSON.parse()

所以:JSON.parse(testVar);,然后从那里修改您的代码和变量。


0
投票
var testVar = { //In a JS file
  "2019-11-06": "D",
  "2019-11-08": "A_con" //continues for a very long time.....
}

var d = new Date();

var date = d.getDate();
var month = d.getMonth() + 1; 
var year = d.getFullYear();
var dateStr = year + "-" + month + "-0" + date;

alert(testVar[dateStr])

使用方括号访问属性,对象中的日期属性的格式也为“ 2019-11-08”,但搜索字符串的格式为“ 2019/11/08”

© www.soinside.com 2019 - 2024. All rights reserved.