Javascript 输出JSON对象的foreach循环
嘿,我是个实习生,我有个问题。 我正在尝试用JavaScript制作一个日历web程序 所以我有一个JSON文件,看起来像这样: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"
{
"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 : '...'}]