Javascript 当json键是一个数字时,如何访问它?
我有一个json文件,其中几个键是数字。我发现了另一个类似的问题,即在试图访问数字键时使用括号表示法。我不知道如何在forEach中使用它。当我没有数字时,一切正常,因此逻辑正常。这可能是我不知道的语法问题。任何方向正确的帮助或指导都会有所帮助 json文件:Javascript 当json键是一个数字时,如何访问它?,javascript,json,fetch,Javascript,Json,Fetch,我有一个json文件,其中几个键是数字。我发现了另一个类似的问题,即在试图访问数字键时使用括号表示法。我不知道如何在forEach中使用它。当我没有数字时,一切正常,因此逻辑正常。这可能是我不知道的语法问题。任何方向正确的帮助或指导都会有所帮助 json文件: [ { "track": "Virtual 1", "data": { "20210310": [ {
[
{
"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)
来获取“真实”数字,而不是字符串,或者由于您的数字似乎是日期,您也可以这样做
adate=新日期(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
。在回调函数中,您需要一个变量来接收该数组中的每个对象。