嘿,我是实习生,我有一个问题。 我试图用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));
快乐编码