foreach L oop, которые выводят JSON объектов - PullRequest
0 голосов
/ 07 февраля 2020

Эй, я стажер и у меня проблема. Я пытаюсь создать веб-программу Calender с 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 l oop go бросил каждый "datei". Таким образом, в первом раунде он получает все данные datei1, во втором раунде он получает все данные datei2 и т. Д.

Не могли бы вы мне помочь, я застрял в этой проблеме на 3 часа.

Ответы [ 4 ]

0 голосов
/ 07 февраля 2020

Можете ли вы изменить json файл на массив json файл

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

, это будет массив, и вы можете использовать foreach l oop что-то вроде этого для чтения данных за l oop

Если вы не можете изменить файл json, используйте его для преобразования в массив, прежде чем делать l oop.

    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));

счастливое кодирование

0 голосов
/ 07 февраля 2020
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/

0 голосов
/ 07 февраля 2020

Попробуйте это ....

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>
0 голосов
/ 07 февраля 2020

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;
...