Ergebnis 1 bis 9 von 9
Like Tree2Likes
  • 2 Post By tsseh

Thema: JSON umwandeln

  1. #1
    Avatar von Andre1985
    Andre1985 ist offline Jungspund
    registriert
    16-11-2011
    Ort
    Bremen
    Beiträge
    15

    JSON umwandeln

    Hallo zusammen,
    ich brauche mal eure Unterstützung da ich selber auf dem Schlauch stehe.

    Ich möchte folgende Struktur:

    Code:
    [{
            identifier: "AGENT.DISPLAYS.VISUSTRUCT.Regonialbereich",
            name: "Regonialbereich",
            sub: [{
                name: "TestA",
                identifier: "AGENT.DISPLAYS.VISUSTRUCT.Regonialbereich.TestA",
                display: "AGENT.DISPLAYS.VISUSTRUCT.Regonialbereich.TestA"
            }]
        }, {
            identifier: "AGENT.DISPLAYS.VISUSTRUCT.RegonialbereichB",
            name: "RegonialbereichB",
            sub: [{
                display: "AGENT.DISPLAYS.VISUSTRUCT.RegonialbereichB.TestB"
                identifier: "AGENT.DISPLAYS.VISUSTRUCT.RegonialbereichB.TestB"
                name: "TestB"
            }]
        }
    }]
    Diese würde ich gerne in eine solche Struktur wandeln:

    Code:
    var data = [
        {
            name: 'node1', id: 1,
            children: [
                { name: 'child1', id: 2 },
                { name: 'child2', id: 3 }
            ]
        },
        {
            name: 'node2', id: 4,
            children: [
                { name: 'child3', id: 5 }
            ]
        }
    ];
    Ziel ist es die obere Struktur in einer Treeview darzustellen. Die Subs können beliebig verschachtelt sein. Subs sind einfach Ordner.
    Leider scheitere ich immer daran die Children hinzufügen. Ich hab versucht es rekursiv zu lösen jedoch hab ich dann immer einen Knoten im Kopf.

    Ich hoffe hier könnt mir helfen. Ich wäre euch sehr dankbar.

    Gruß
    André
    "Aber das ist eine andere Geschichte und soll ein andermal erzählt werden."

    Unendliche Geschichte - Michael Ende

  2. #2
    Avatar von mikdoe
    mikdoe ist offline Administrator
    registriert
    01-05-2010
    Beiträge
    7.620

    AW: JSON umwandeln

    Ich finde die Werte aus der Zielstruktur nicht in der Quellstruktur. Wo kommen die her? Also z. B. child3 oder node2. Wie werden die gebildet?
    Das deutsche Javascript Forum http://forum.jswelt.de http://forum.jswelt.de/images/logoJsWeltForumV4_32x22.png
    Sorry wenn ich manchmal ohne Hallo und nur klein schreibe! Dann bin ich nicht unfreundlich sondern mit nervigem kleinem Touch Tablet zugange

  3. #3
    Avatar von Andre1985
    Andre1985 ist offline Jungspund
    registriert
    16-11-2011
    Ort
    Bremen
    Beiträge
    15

    AW: JSON umwandeln

    Ja, vielleicht sollte ich diese Details auch erwähnen. Sorry :-/

    So

    Code:
     {
            name: 'Regonialbereich', id: 1,
            children: [
                { name: 'TestA', id: 2 },
            ]
        },
        {
            name: 'RegonialbereichB', id: 4,
            children: [
                { name: 'TestB', id: 5 }
            ]
        }
    Ziel soll halt das hier sein: JqTree - JSFiddle

    Wobei Regionalbereich oder RegionalbereichB wieder Unterordner erhalten könnten.
    "Aber das ist eine andere Geschichte und soll ein andermal erzählt werden."

    Unendliche Geschichte - Michael Ende

  4. #4
    tsseh ist offline Foren-Gott
    registriert
    19-05-2008
    Beiträge
    5.640

    AW: JSON umwandeln

    Code:
    var xxx = [{
            identifier: "AGENT.DISPLAYS.VISUSTRUCT.Regonialbereich",
            name: "Regonialbereich",
            sub: [{
                name: "TestA",
    ...
    
    function transform(elem, id)
    {
      var id = id || { id: 1 };
      return elem.map(function(elem)
      {
        var ret = {
          name: elem.name,
          id: id.id++
        };
        if (elem.sub)
        {
          ret.children = transform(elem.sub, id);
        }
        return ret;
      });
    };
    
    var yyy = transform(xxx);
    Andre1985 and SteelWheel like this.

  5. #5
    Avatar von Andre1985
    Andre1985 ist offline Jungspund
    registriert
    16-11-2011
    Ort
    Bremen
    Beiträge
    15

    AW: JSON umwandeln

    Vielen vielen Dank!

    Klappt super
    "Aber das ist eine andere Geschichte und soll ein andermal erzählt werden."

    Unendliche Geschichte - Michael Ende

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

    AW: JSON umwandeln

    tsseh: warum ist id ein Objekt?

  7. #7
    tsseh ist offline Foren-Gott
    registriert
    19-05-2008
    Beiträge
    5.640

    AW: JSON umwandeln

    Zitat Zitat von kkapsner Beitrag anzeigen
    tsseh: warum ist id ein Objekt?
    wegen der referenz id.id

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

    AW: JSON umwandeln

    stimmt, wenn man es zu einer normalen Zahl macht, funktioniert der rekursive Ansatz nicht mehr.

    Ich würde das ja so machen:
    Code:
    function transform(elem){
    	id = 0;
    	function iterate(elem){
    		return elem.map(function(elem){
    			id += 1;
    			var ret = {
    				name: elem.name,
    				id: id
    			};
    			if (elem.sub){
    				ret.children = iterate(elem.sub);
    			}
    			return ret;
    		});
    	}
    	return iterate(elem);
    }
    - macht es in meinen Augen klarer, dass id sowas wie eine quasi-globale Variable in der Rekursion ist.

  9. #9
    Avatar von rckd
    rckd ist offline Eroberer
    registriert
    04-01-2017
    Beiträge
    60

    AW: JSON umwandeln

    Hier mal aus Langeweile noch ein funktionaler Ansatz (jsfiddle):

    PHP-Code:
    const transform_r = (array, id=1) => array.reduce((statenode) => {
      const { 
    idnodes } = state
      
    const { idxidnodeschildren } = transform_r(node.sub || [], id 1)
      return{
        
    idxid,
        
    nodes: [ ...nodes, { idnamenode.namechildren }],
      }
    }, { 
    idnodes: [] })

    const 
    transform = (nodes) => transform_r(nodes).nodes 
    :-)
    Geändert von rckd (12-03-2018 um 11:07 Uhr)

Ä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. Javascript-Array in JSON-String umwandeln
    Von trashmaxx im Forum JavaScript
    Antworten: 2
    Letzter Beitrag: 07-09-2010, 01:20
  3. Objekt per JavaScript in JSON-String umwandeln
    Von orator im Forum JavaScript
    Antworten: 4
    Letzter Beitrag: 21-02-2010, 15:24
  4. Array/Objekt in JSON string umwandeln
    Von Stefan125 im Forum JavaScript
    Antworten: 1
    Letzter Beitrag: 02-10-2009, 14:09
  5. JSON in Javascript Array umwandeln
    Von grailsaction im Forum JavaScript
    Antworten: 1
    Letzter Beitrag: 25-09-2009, 16:15

Lesezeichen

Berechtigungen

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