Javascript 当json键是一个数字时,如何访问它?

Javascript 当json键是一个数字时,如何访问它?,javascript,json,fetch,Javascript,Json,Fetch,我有一个json文件,其中几个键是数字。我发现了另一个类似的问题,即在试图访问数字键时使用括号表示法。我不知道如何在forEach中使用它。当我没有数字时,一切正常,因此逻辑正常。这可能是我不知道的语法问题。任何方向正确的帮助或指导都会有所帮助 json文件: [ { "track": "Virtual 1", "data": { "20210310": [ {

我有一个json文件,其中几个键是数字。我发现了另一个类似的问题,即在试图访问数字键时使用括号表示法。我不知道如何在forEach中使用它。当我没有数字时,一切正常,因此逻辑正常。这可能是我不知道的语法问题。任何方向正确的帮助或指导都会有所帮助

json文件:

[
{
    "track": "Virtual 1",
    "data": {
        "20210310": [
            {
                "start": "8:20 a.m.",
                "end": "",
                "company": "Otonomo",
                "ticker": "OTON"
            },
剧本

const request = new Request('schedule.json');
fetch(request)
  .then((r) => {
    return r.json();
  })
  .then((dataStr) => {
      dataStr.forEach(function(n, i) {
            console.log(Object.keys(n.data));
            n.data["20210310"].forEach(function(data["20210310"]) {
              createTableCells(tab1, "20210310");
            });

您已经是对的,并使用括号符号正确访问它。 这会给你带来你想要的价值
n.data[“20210310”]
代码的问题是传递到forEach循环的函数。你想要这样的吗
n.data[“20210310”].forEach(函数(元素){…


您始终可以执行
console.log(element);
来查看forEach中的内容,但elemtn将是带有“start”、“end”、“company”等属性的嵌套对象。

我在json文件中没有看到任何数字,都是字符串……因此它们都可以引用“20210310”

这可能会对您有所帮助(请参阅代码笔:)

但是,如果需要在回调函数中使用该数字,则 您可以使用
let n=parseInt(k)
来获取“真实”数字,而不是字符串,或者由于您的数字似乎是日期,您也可以这样做 a
date=新日期(k.替换(/(..)(..)(..)/,`1-$2-$3`);
要有一个“javascriptDate”


让json=[
{
“跟踪”:“虚拟1”,
“数据”:{
"20210310": [
{
“开始”:“上午8:20”,
“结束”:“,
“公司”:“Otonomo”,
“股票代码”:“OTON”
} ]
}
}];
((dataStr)=>{dataStr.forEach(函数(n,i){
console.log('n:',n);
console.log('i:',i);
console.log(Object.keys(n.data));
Object.key(n.data.forEach)(
k=>{
//这里的一些代码使用n.data[k];
//像createTableCells(tab1,n.data[k]);
//等等。
日期=新日期(k.替换(/(..)(..)/,`1-$2-$3`);
console.dir(date.togmString())
console.dir(n.data[k])
console.info(`${k}:${n.data[k][0].ticker};start:${n.data[k][0].start}…`);
});
} )
})(json);

您需要forEach函数;特别是形式参数。您已经使用
n.data[“20210310”]访问了属性。forEach
。在回调函数中,您需要一个变量来接收该数组中的每个对象。