Ergebnis 1 bis 6 von 6
  1. #1
    Quietscheente ist offline Grünschnabel
    registriert
    14-06-2016
    Beiträge
    3

    Question JSON als Array einlesen

    Hallo zusammen,

    ich bin noch recht neu was Javascript und Co. angeht und tue mich bisher leider auch recht schwer. Nachdem ich jetzt eine Woche rumprobiert und gegooglet habe, bitte ich nun doch um konkrete Hilfestellung.

    Ich habe eine json-Datei, in der zu unterschiedlichen Messgrößen jeweils die zugehörigen Messgrößen gespeichert sind, nach folgendem Prinzip:
    Code:
    {
    	"U1": [80.7295, 80.7339, 80.7463, 80.7472, 80.7507, 80.769],
    	"U2": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0],
    	"U3": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0],
    	"localtime": ["Mon Jun 13 15:06:25 2016", "Mon Jun 13 15:07:00 2016", "Mon Jun 13 15:08:00 2016", "Mon Jun 13 15:09:00 2016", "Mon Jun 13 15:10:00 2016", "Mon Jun 13 15:11:00 2016"],
    }
    Die Messgrößen sollen über die Zeit (localtime) mit chart.js in einem Liniendiagramm dargestellt werden. Leider gelingt es mir nicht die Daten korrekt einzulesen, sodass ich z.B. auf die 6 Messwerte von U1 zugreifen kann, die ja für chart.js als Array übergeben werden müssen.

    Bisher sieht das ganze etwa so aus:
    Code:
    <!doctype html>
    <html>
    <head>
    <meta charset="utf-8"></meta>
    <title>...</title>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.2/jquery.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/1.0.2/Chart.min.js"></script>
    </head>
    
    <body>
    <!--Daten aus JSON als array einlesen--------------------------------->
    <script>
    var charts_janitza = ['U1','U2','U3','localtime']
    
    jQuery(document).ready(function($) {
    	function repeat(){
    		$.getJSON('data_charts.json', function(data) {
    			console.log(data.U1); /*hier als Array einlesen*/
    
    			});
    		setTimeout(repeat, 500);
    	}
    	repeat();
    
    });
    </script>
    
    <!--Line Chart-------------------------------------------------------------->
    <canvas id="myChart" width="400" height="400"></canvas>
    
    <script>
    $(function () {
    	var data = {
    		labels: ["t1", "t2", "t3", "t4", "t5","t6"],
    		datasets: [
    			{
    				label: "The First Dataset",
    				fillColor: "rgba(153,0,76,0.2)", //magenta
    				strokeColor: "rgba(153,0,76,1)",
    				pointColor: "rgba(153,0,76,1)",
    				pointStrokeColor: "#fff", //white
    				pointHighlightFill: "#fff",
    				pointHighlightStroke: "rgba(153,0,76,1)",
    				data: dataset1 //soll Messdaten enthalten aus JSON
    			},
    		]
    	};
    });
    </script>
    </body>
    </html>
    Ich habe es u.a. schon mit einer for-Schleife, dem $.each-Befehl und dem .push-Befehl probiert, allerdings ohne Erfolg. Habe das ganze noch nicht so durchschaut.
    Das Timeout ist, damit sich die Daten regelmäßig aktualisieren.

    Hat jemand vielleicht eine konkrete Idee?

    Viele Grüße
    Jule
    Geändert von Quietscheente (15-06-2016 um 15:53 Uhr)

  2. #2
    Avatar von kkapsner
    kkapsner ist offline Super Moderator
    registriert
    28-03-2008
    Beiträge
    17.649

    AW: JSON als Array einlesen

    data.U1 sollte schon ein Array sein und funktionieren.

    PS: Warum bindest du jQuery zweimal ein? Und warum mit verschiedenen Versionen?

  3. #3
    Quietscheente ist offline Grünschnabel
    registriert
    14-06-2016
    Beiträge
    3

    AW: JSON als Array einlesen

    Oh, das mit jQuery war ein Versehen. Einmal sollte es Chart.js sein. Habe die Dateien eigentlich lokal gespeichert und nur hierfür extra die Links eingefügt...

    Leider funktioniert es bei mir nicht. Ich erhalte immer die Fehlermeldung, dass data nicht definiert ist. Woran kann das liegen?

  4. #4
    Avatar von kkapsner
    kkapsner ist offline Super Moderator
    registriert
    28-03-2008
    Beiträge
    17.649

    AW: JSON als Array einlesen

    Hm... dann sieht dein JSON ev. nicht so aus, wie du es gerne hättest. Hast du da vielleicht ein BOM am Anfang?

  5. #5
    Quietscheente ist offline Grünschnabel
    registriert
    14-06-2016
    Beiträge
    3

    AW: JSON als Array einlesen

    Hmm, wenn dann zumindest nicht bewusst. Allerdings ist mir auch nicht ganz klar, was genau das bedeutet bzw. wie ich das erkenne, trotz Recherche. Gibt es vielleicht einen anderen (uneleganteren) Weg, damit ich meine Daten für die Charts nutzen kann, wenn es so nicht funktioniert?

  6. #6
    Avatar von kkapsner
    kkapsner ist offline Super Moderator
    registriert
    28-03-2008
    Beiträge
    17.649

    AW: JSON als Array einlesen

    Kannst du uns mal einen Link geben, wo wir uns dein Problem live ansehen können? So aus der Ferne ist bei solchen Problemen das Debuggen etwas schwierig.

    PS: Die BOM kannst du dir z.B. mit Notepad++ anzeigen lassen.

Ähnliche Themen

  1. AJAX und JSON - ein Array Object der JSON laden nicht alle
    Von kleene-chris85 im Forum JavaScript
    Antworten: 1
    Letzter Beitrag: 24-07-2012, 00:57
  2. Antworten: 1
    Letzter Beitrag: 17-06-2012, 03:16
  3. Javascript Datei(Array) neu einlesen
    Von mastermueller im Forum JavaScript
    Antworten: 1
    Letzter Beitrag: 31-01-2011, 22:50
  4. Textdatei als Array einlesen und wieder speichern
    Von eismann90 im Forum Serverseitige Programmierung
    Antworten: 4
    Letzter Beitrag: 09-08-2008, 16:52
  5. mehrere input felder als array einlesen
    Von frau moella im Forum Serverseitige Programmierung
    Antworten: 2
    Letzter Beitrag: 12-05-2002, 15:47

Stichworte

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •