Tief ändern der Werte in einem JavaScript-Objekt

Ich habe ein Objekt, das enthält eine unbekannte Anzahl von anderen Objekten. Jedes (sub-)Objekt enthalten können Boolesche Werte als strings und ich möchte Sie zu ändern, um echte Boolesche Werte. Hier ist ein Beispiel-Objekt:

var myObj = {
  my1stLevelKey1: "true",
  my1stLevelKey2: "a normal string",
  my1stLevelKey3: {
    my2ndLevelKey1: {
      my3rdLevelKey1: {
        my4thLevelKey1: "true",
        my4thLevelKey2: "false"
      }
    },
    my2ndLevelKey2: {
      my3rdLevelKey2: "FALSE"
    }
  }
}

Was ich will, am Ende ist diese:

var myObj = {
  my1stLevelKey1: true,
  my1stLevelKey2: "a normal string",
  my1stLevelKey3: {
    my2ndLevelKey1: {
      my3rdLevelKey1: {
        my4thLevelKey1: true,
        my4thLevelKey2: false
      }
    },
    my2ndLevelKey2: {
      my3rdLevelKey2: false
    }
  }
}

Wichtig ist, dass die Anzahl sub-Objekte/Ebenen unbekannt ist. Wie kann ich dies effektiv, indem Sie entweder mit der klassischen JavaScript oder Mootools?

  • Sie brauchen einen rekursiven iterator. schauen Sie in json2.js um zu sehen, wie es durchdringt Objekte. Sie können auch verwenden tatsächlich eine JSON-revivor-Funktion.
InformationsquelleAutor Timo | 2015-05-08
Schreibe einen Kommentar