foreach 输出 JSON 对象的循环



嘿,我是实习生,我有一个问题。 我试图用JavaScript制作一个日历网络程序。

所以我有一个看起来像这样的 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(var date in testJson) {
var titel = testJson[date].titel;
var start_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  });
}
return xxx;

Object.keys(json).forEach(function(key){
var title = json[key].titel;
var datumbegin = json[key].datumbegin
console.log(title, datumbegin)
})

试试这个。这是jsfiddle:https://jsfiddle.net/jbke43to/

试试这个....

function GetData(xxx) {

var jsonData = document.getElementById("table_data").innerHTML; 
jsonData = JSON.parse(jsonData);

let keys = Object.keys(jsonData);
	for(const k of keys){
		xxx.push(jsonData[k]); 
	}  
return xxx;
}
var data = [];
data = GetData(data);
console.log(data);
<textarea id="table_data">{
"datei1":{
"titel":"text",
"datumbegin":"2020-02-20 00:00:00",
"datumend":"2020-02-20 00:00:00",
"text":"Ort : text text 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 : text test text"
},
"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 :text text test text"
},
"datei5":{
"titel":"Schulung zum Thema Datenschutz",
"datumbegin":"2020-02-19 00:00:00",
"datumend":"2020-02-19 00:00:00",
"text":"Ort : text test ext ext
},
"datei6":{
"titel":"Brandschutz Lehrgang",
"datumbegin":"2020-02-17 00:00:00",
"datumend":"2020-02-17 00:00:00",
"text":"Ort: text text textr"
},
"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"
}
}</textarea>

您可以将 json 文件更改为数组 json 文件吗

[{ datei : '...'} , { datei2 : '...'}]

它将是数组,您可以使用 foreach 循环这样的东西来读取每个循环的数据

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

const testJson = {
"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"
}
};
// convert to array 
let data = [];
for (let key in testJson) {
if (testJson.hasOwnProperty(key)) {
data.push({name : key , data : testJson[key]})
}
}
console.log(data);

然后你只是

data.forEach(element => console.log(element));

快乐编码

最新更新