JavaScript Multidimensionales Obj in JSON umwandeln

Blackbenji

Lieutenant
Registriert
Nov. 2009
Beiträge
557
Hallo zusammen,

folgendes Problem: zum Monitoren unserer Anwendungen schreibe ich in Node.js einen Crawler.
Dieser ruft unsere Endpoints auf, sammelt Informationen und speichert sie in ein Object.

Zur Weiterverarbeitung benötige ich aber ein JSON. Leider scheitert es an der Umwandeln von Obj zum JSON.

Anbei ein Code-Beispiel:

Javascript:
console.dir(obj, { depth: null })

Javascript:
{
  live: [
    appname: [
      { '0': { version: '0.1', state: 'up', clone: '0' } },
      { '1': { version: '0.1', state: 'up', clone: '1' } }
    ]
  ],
  test: [
    appname: [
      { '0': { version: '0.2-SNAPSHOT', state: 'up', clone: '0' } },
      { '1': { version: '0.2-SNAPSHOT', state: 'up', clone: '1' } }
    ]
  ]
}

Convert to JSON
Javascript:
console.log(JSON.stringify(obj))

Javascript:
{"live":[],"test":[]}

Das JSON bleibt nur auf der ersten Ebene, geht aber nicht tiefer.
Könnte mir jemand einen Hinweiß geben?
 
Das Format deines Objekts ist falsch. Du deklarierst "live" mit [ ] als Array, aber innerhalb dieses Arrays gibst du mit "appname" ein Objekt an.

Korrekterweise müsstest du es also wie folgend machen
Javascript:
{
  live: {        //statt "["
    appname: [
      { '0': { version: '0.1', state: 'up', clone: '0' } },
      { '1': { version: '0.1', state: 'up', clone: '1' } }
    ]
  },            //statt "]"
  test: {       //statt "["
    appname: [
      { '0': { version: '0.2-SNAPSHOT', state: 'up', clone: '0' } },
      { '1': { version: '0.2-SNAPSHOT', state: 'up', clone: '1' } }
    ]
  }                //statt "]"
}
 
  • Gefällt mir
Reaktionen: floq0r, Blackbenji und netzgestaltung
  • Gefällt mir
Reaktionen: Blackbenji
Zurück
Oben