Aktuelle Zeit: 17.02.2019 02:00

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]




Ein neues Thema erstellen Auf das Thema antworten  [ 5 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Javascript ohne jquery nach Child in JSON suchen
BeitragVerfasst: 25.01.2019 18:18 
Offline

Registriert: 18.08.2017 09:35
Hallo, ich bin in Javascript ein Anfänger und komme an einer Stelle nicht weiter. Ich benutze JS nativ, also muss das ohne jquery funktionieren.
Ich habe ein JSON und möchte die Ausgabe mit der Funktion .filter() nach etwas suchen und gefiltert ausgeben.

Es soll nur über "Name" gesucht werden. Z.B. möchte ich alle Einträge haben, die beim "Name" das Wort "Programm" enthält. In dem Fall müsste ich zwei Ergebnisse zurück bekommen. "Programme und Funktionen" und "Programmierung"

Mein JSON
Code:
{
   "KategorieAGH":[
      {
         "Name":"Programme und Funktionen",
         "Wert":25
      }
   ],
   "KategorieTZU":[
      {
         "Name":"Programmierung",
         "Wert":75
      },
      {
         "Name":"Funktionalität",
         "Wert":50
      }
   ],
   "KategorieHGA":[
      {
         "Name":"Hallo Welt",
         "Wert":10
      },
      {
         "Name":"Hallo Sabine",
         "Wert":90
      }
   ]
}


Mein Versuch in JS:
Code:
var json = '[{"KategorieAGH":[{"Name":"Programme und Funktionen","Wert":25}],"KategorieTZU":[{"Name":"Programmierung","Wert":75},{"Name":"Funktionalität","Wert":50}],"KategorieHGA":[{"Name":"Hallo Welt","Wert":10},{"Name":"Hallo Sabine","Wert":90}]}]';
obj = JSON.parse(json);

var data_filter = obj.filter( element => element.Name == "Programm")//"Programme und Funktionen" funktioniert auch nicht
console.log(data_filter)


Ich krieg es nicht hin, in das Kind reinzuhangeln und nur nach "Name" mit einem Wort zu vergleichen.

Ein anderes Beispiel mit einem einfachen JSON mit einer Ebene funktioniert tadellos:
Code:
var data = [{"name":"Lenovo Thinkpad 41A4298","website":"google"},
{"name":"Lenovo Thinkpad 41A2222","website":"google"},
{"name":"Lenovo Thinkpad 41Awww33","website":"yahoo"},
{"name":"Lenovo Thinkpad 41A424448","website":"google"},
{"name":"Lenovo Thinkpad 41A429rr8","website":"ebay"},
{"name":"Lenovo Thinkpad 41A429ff8","website":"ebay"},
{"name":"Lenovo Thinkpad 41A429ss8","website":"rediff"},
{"name":"Lenovo Thinkpad 41A429sg8","website":"yahoo"}]

var data_filter = data.filter( element => element.website =="yahoo")
console.log(data_filter)


Bitte helft mir :) Ich wäre euch sehr dankbar :)

_________________
Bild


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Javascript ohne jquery nach Child in JSON suchen
BeitragVerfasst: 25.01.2019 19:04 
Offline
Benutzeravatar

Registriert: 20.04.2006 09:50
In deinem 1. JSON Source hast kein Root-Array, in deinem 2. Source hast du ein Array drumherum?
Brauchst du auch die Kategorien, bzw willst du die Struktur erthalten?

_________________
my pb stuff..
Bild..jedenfalls war das mal so.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Javascript ohne jquery nach Child in JSON suchen
BeitragVerfasst: 25.01.2019 19:25 
Offline

Registriert: 18.08.2017 09:35
Ich möchte gerne die Struktur von dem jeweiligen gefundenen Eintrag bekommen, so dass ich auch den Kategorienamen, der beliebig sein kann, ermitteln kann.
Es wäre super geil, wenn du oder ein anderer mir helfen kann.
Beispiel, wenn ich nach "Programmierung" suche, dann soll die Ausgabe so sein:
Code:
{
   "KategorieTZU":[
      {
         "Name":"Programmierung",
         "Wert":75
      }
   ]
}


Wenn ich nach "Programm" (Wildcardsuche möglich?) suche, dann soll die Ausgabe so sein:
Code:
{
   "KategorieAGH":[
      {
         "Name":"Programme und Funktionen",
         "Wert":25
      }
   ],
   "KategorieTZU":[
      {
         "Name":"Programmierung",
         "Wert":75
      }
   ]
}

_________________
Bild


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Javascript ohne jquery nach Child in JSON suchen
BeitragVerfasst: 25.01.2019 19:31 
Offline
Benutzeravatar

Registriert: 20.04.2006 09:50
Leider nicht ganz wie in deinem letzten Post beschrieben..
Code:
         var json = '[{"KategorieAGH":[{"Name":"Programme und Funktionen","Wert":25}],"KategorieTZU":[{"Name":"Programmierung","Wert":75},{"Name":"Funktionalität","Wert":50}],"KategorieHGA":[{"Name":"Hallo Welt","Wert":10},{"Name":"Hallo Sabine","Wert":90}]}]';
         obj = JSON.parse(json);
         console.log(obj)
         
         var data_filter = [];
         for (var i = 0; i < obj.length; i++) {
            var kat = obj[i];
            for (var prop in kat) {
               if (kat.hasOwnProperty(prop)) {
                  var entries = kat[prop];
                  for (var e = 0; e < entries.length; e++) {
                     var entry = entries[e];
                     if (entry.Name.indexOf('Programm') >= 0) {
                        data_filter.push( { 'Kategorie' : prop, 'Name' : entry.Name, 'Wert' : entry.Wert } );
                     }
                  }
               }
            }   
         }
         console.log(data_filter)

Code:
[
  {
    "Kategorie": "KategorieAGH",
    "Name": "Programme und Funktionen",
    "Wert": 25
  },
  {
    "Kategorie": "KategorieTZU",
    "Name": "Programmierung",
    "Wert": 75
  }
]

_________________
my pb stuff..
Bild..jedenfalls war das mal so.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Javascript ohne jquery nach Child in JSON suchen
BeitragVerfasst: 28.01.2019 12:39 
Offline

Registriert: 18.08.2017 09:35
Danke sehr :)

_________________
Bild


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 5 Beiträge ] 

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 5 Gäste


Sie dürfen keine neuen Themen in diesem Forum erstellen.
Sie dürfen keine Antworten zu Themen in diesem Forum erstellen.
Sie dürfen Ihre Beiträge in diesem Forum nicht ändern.
Sie dürfen Ihre Beiträge in diesem Forum nicht löschen.

Suche nach:
Gehe zu:  
cron

 


Powered by phpBB © 2008 phpBB Group | Deutsche Übersetzung durch phpBB.de
subSilver+ theme by Canver Software, sponsor Sanal Modifiye