Javascript 输出JSON对象的foreach循环

Javascript 输出JSON对象的foreach循环,javascript,json,foreach,Javascript,Json,Foreach,嘿,我是个实习生,我有个问题。 我正在尝试用JavaScript制作一个日历web程序 所以我有一个JSON文件,看起来像这样: { "datei1":{ "titel":"text", "datumbegin":"2020-02-20 00:00:00", "datumend":"2020-02-20 00:00:00", "text":"Ort : text." }, "datei2":{ "titel":"TEST"

嘿,我是个实习生,我有个问题。 我正在尝试用JavaScript制作一个日历web程序

所以我有一个JSON文件,看起来像这样:

{
   "datei1":{
      "titel":"text",
      "datumbegin":"2020-02-20 00:00:00",
      "datumend":"2020-02-20 00:00:00",
      "text":"Ort : text."

},
   "datei2":{
      "titel":"TEST",
      "datumbegin":"2020-02-03 00:00:00",
      "datumend":"2020-02-04 00:00:00",
      "text":"wedwefwfacafwaq"

},
   "datei3":{
      "titel":"Jahresmeeting 2019",
      "datumbegin":"2020-01-06 00:00:00",
      "datumend":"2020-01-06 00:00:00",
      "text":"Ort : test text : 10 Uhr "

},
   "datei4":{
      "titel":"Admin Meeting zum Update 0.5.5",
      "datumbegin":"2020-02-27 00:00:00",
      "datumend":"2020-02-27 00:00:00",
      "text":"Ort : probeeeeeeeeeeeee"

},
   "datei5":{
      "titel":"Schulung zum Thema Datenschutz",
      "datumbegin":"2020-02-19 00:00:00",
      "datumend":"2020-02-19 00:00:00",
      "text":"Ort : text text text"

},
   "datei6":{
      "titel":"Brandschutz Lehrgang",
      "datumbegin":"2020-02-17 00:00:00",
      "datumend":"2020-02-17 00:00:00",
      "text":"Ort: text text test text"

},
   "datei7":{
      "titel":"Bereich Wechsel 2020 Mai",
      "datumbegin":"2020-05-14 00:00:00",
      "datumend":"2020-09-19 00:00:00",
      "text":"Bereich 5 wird zu Bereich 3 gewechselt."

},
   "datei8":{
      "titel":"TEST",
      "datumbegin":"2020-02-06 12:00:00",
      "datumend":"2020-02-06 15:00:00",
      "text":"sdasasfdsdafsafsfsfswf"

}
}
所以现在我试着读出每个“datei”属性

我的JavaScript代码目前看起来是这样的:

function GetData(xxx)
{


  var test = document.getElementById("table_data").innerHTML;

  var testJson = JSON.parse(test);

  console.log(testJson.datei1.titel);
  console.log(testJson.datei1);
  console.log(testJson);
  var keyCount  = Object.keys(testJson).length;
  console.log(keyCount);

  var datei_anzahl = 1;

    var titel = testJson.datei1.titel;
    var start_jahr = testJson.datei1.datumbegin;
    var end_jahr = testJson.datei1.datumend;
    var text = testJson.datei1.text;

    xxx.push({ title: titel, start: new Date(start_jahr), end: new Date(end_jahr), allDay: true, text: text  });

  return xxx;
}

var data = [];
data = GetData(data);
所以我现在只有“datei1”的所有属性 但我希望每个“日期”都有一个foreach循环。 因此,在第一轮中,它获得datei1的所有内容,在第二轮中,它获得datei2的所有内容,依此类推

你能帮我解决这个问题有3个小时了。

for(testJson中的变量日期){
var titel=testJson[date].titel;
var start\u jahr=testJson[date].datumbegin;
var end_jahr=testJson[date].datumend;
var text=testJson[date].text;
xxx.push({title:titel,start:new Date(start_jahr),end:new Date(end_jahr),allDay:true,text:text});
}
返回xxx
试试这个。这里是JSFIDLE:

试试这个

函数GetData(xxx){ var jsonData=document.getElementById(“表数据”).innerHTML; jsonData=JSON.parse(jsonData); 让keys=Object.keys(jsonData); 用于(密钥常数k){ xxx.push(jsonData[k]); } 返回xxx; } var数据=[]; 数据=获取数据(数据); 控制台日志(数据)
{
“日期1”:{
“titel”:“文本”,
“达通贝金”:“2020-02-20 00:00:00”,
“datumend”:“2020-02-20 00:00:00”,
“文本”:“Ort:文本”
},
“日期12”:{
“滴度”:“测试”,
“达通贝金”:“2020-02-03 00:00:00”,
“datumend”:“2020-02-04 00:00:00”,
“文本”:“Wedweffacafwaq”
},
“日期13”:{
“titel”:“Jahresmeeting 2019”,
“达通贝金”:“2020-01-06 00:00:00”,
“datumend”:“2020-01-06 00:00:00”,
“文本”:“Ort:文本测试文本”
},
“日期14”:{
“titel”:“管理员会议zum更新0.5.5”,
“达通贝金”:“2020-02-27 00:00:00”,
“datumend”:“2020-02-27 00:00:00”,
“文本”:“Ort:文本测试文本”
},
“日期15”:{
“提特尔”:“Schulung zum Thema Datenschutz”,
“达通贝金”:“2020-02-19 00:00:00”,
“datumend”:“2020-02-19 00:00:00”,
“文本”:“Ort:文本测试分机”
},
“日期16”:{
“提特尔”:“布兰德舒茨·莱尔冈”,
“达通贝金”:“2020-02-17 00:00:00”,
“datumend”:“2020-02-17 00:00:00”,
“文本”:“Ort:textr”
},
“日期17”:{
“蒂特尔”:“Bereich Wechsel 2020 Mai”,
“达通贝金”:“2020-05-14 00:00:00”,
“datumend”:“2020-09-19 00:00:00”,
“文本”:“Bereich 5 wird zu Bereich 3 gewechselt。”
},
“日期18”:{
“滴度”:“测试”,
“达通贝金”:“2020-02-06 12:00:00”,
“datumend”:“2020-02-06 15:00:00”,
“文本”:“SDASASSFDSAFSFSWF”
}

}
能否将json文件更改为数组json文件

[{ datei : '...'} , { datei2 : '...'}]
它将是数组,您可以使用类似这样的foreach循环来读取每个循环的数据

如果无法更改json文件,请在执行循环之前先将其用于转换为数组

const testJson={
“日期1”:{
“titel”:“文本”,
“达通贝金”:“2020-02-20 00:00:00”,
“datumend”:“2020-02-20 00:00:00”,
“文本”:“Ort:文本。”
},
“日期12”:{
“滴度”:“测试”,
“达通贝金”:“2020-02-03 00:00:00”,
“datumend”:“2020-02-04 00:00:00”,
“文本”:“Wedweffacafwaq”
},
“日期13”:{
“titel”:“Jahresmeeting 2019”,
“达通贝金”:“2020-01-06 00:00:00”,
“datumend”:“2020-01-06 00:00:00”,
“文本”:“Ort:测试文本:10 Uhr”
},
“日期14”:{
“titel”:“管理员会议zum更新0.5.5”,
“达通贝金”:“2020-02-27 00:00:00”,
“datumend”:“2020-02-27 00:00:00”,
“文本”:“Ort:PROBEEEE”
},
“日期15”:{
“提特尔”:“Schulung zum Thema Datenschutz”,
“达通贝金”:“2020-02-19 00:00:00”,
“datumend”:“2020-02-19 00:00:00”,
“文本”:“Ort:文本”
},
“日期16”:{
“提特尔”:“布兰德舒茨·莱尔冈”,
“达通贝金”:“2020-02-17 00:00:00”,
“datumend”:“2020-02-17 00:00:00”,
“文本”:“Ort:文本测试文本”
},
“日期17”:{
“蒂特尔”:“Bereich Wechsel 2020 Mai”,
“达通贝金”:“2020-05-14 00:00:00”,
“datumend”:“2020-09-19 00:00:00”,
“文本”:“Bereich 5 wird zu Bereich 3 gewechselt。”
},
“日期18”:{
“滴度”:“测试”,
“达通贝金”:“2020-02-06 12:00:00”,
“datumend”:“2020-02-06 15:00:00”,
“文本”:“SDASASSFDSAFSFSWF”
}
};
//转换为数组
让数据=[];
for(让我们输入testJson){
if(testJson.hasOwnProperty(键)){
push({name:key,data:testJson[key]})
}
}

console.log(data);
例如,您可以使用
Object.keys(json)
在数组中获取对象的键。然后您可以在该数组中循环。“datei1”、“datei2”…为什么这不是数组?
[{ datei : '...'} , { datei2 : '...'}]