Bitbybit Docs
    Bereite Suchindex vor...

    Klasse JSONBitByBit

    Lesen und Ändern von Werten innerhalb von JSON-Daten. Ein Pfad wie $.parts[0].name folgt der JSONPath-Syntax: $ ist die Wurzel, .name steigt in eine Eigenschaft, [0] in einen Listeneintrag und ..name sucht in beliebiger Tiefe. Die Methoden hier fragen ab, setzen und listen nach Pfad, arbeiten auf einzelnen Eigenschaften und zeigen Daten in einer Vorschau über die Anwendung an; jede Änderung kommt als geänderte Kopie zurück, die Eingabe bleibt, wie sie ist.

    Index

    Konstruktoren

    create

    • Liefert ein neues leeres Objekt ohne Eigenschaften, einen Ausgangspunkt für setValueOnProp und setValue.

      Rückgabewert any

      Ein leeres Objekt

      const settings = bitbybit.json.createEmpty();
      const withWidth = bitbybit.json.setValueOnProp({ json: settings, property: "width", value: 10 });

    jsonpath

    • Findet jeden Wert im JSON, auf den ein JSONPath-Ausdruck passt, und liefert sie als Liste, auch wenn es nur einen gibt.

      $.parts[*].name listet alle Teilnamen auf und $..radius jeden Radius in beliebiger Tiefe; JSONPath- Filter in eckigen Klammern grenzen die Treffer durch eine Bedingung ein.

      Parameter

      • inputs: QueryDto

        Das JSON und der JSONPath-Ausdruck

      Rückgabewert any

      Die passenden Werte als Liste

      const names = bitbybit.json.query({ json: model, query: "$.parts[*].name" });
      
    • Setzt die Eigenschaft prop auf value bei jedem Objekt, das ein JSONPath-Ausdruck erreicht, und liefert eine geänderte Kopie des JSON.

      path zeigt auf die Elternobjekte, prop nennt die Eigenschaft auf ihnen: path: "$.parts[*]", prop: "visible" ändert jedes Teil. Ein Wert, der kein Objekt ist, löst einen Fehler aus.

      Parameter

      • inputs: SetValueDto

        Das JSON, der Pfad zu den Elternobjekten, der Eigenschaftsname und der Wert

      Rückgabewert any

      Die geänderte Kopie

      const hidden = bitbybit.json.setValue({ json: model, path: "$.parts[*]", prop: "visible", value: false });
      
    • Wendet mehrere setValue-Änderungen in einem Zug an: Eintrag i von paths, props und values ist eine Änderung, der Reihe nach auf eine Kopie des JSON angewendet.

      Parameter

      • inputs: SetValuesOnPathsDto

        Das JSON und die zueinander passenden Listen von Pfaden, Eigenschaftsnamen und Werten

      Rückgabewert any

      Die geänderte Kopie

      const updated = bitbybit.json.setValuesOnPaths({ json: model, paths: ["$", "$.parts[0]"], props: ["name", "visible"], values: ["Assembly", false] });
      
    • Listet die Pfade jedes Werts auf, auf den ein JSONPath-Ausdruck passt, jeden als vollständigen Pfad von der Wurzel wie $['parts'][0]['name'], statt der Werte selbst.

      Parameter

      • inputs: PathsDto

        Das JSON und der JSONPath-Ausdruck

      Rückgabewert any

      Die Pfade der Treffer, als Liste von Zeichenketten

      const where = bitbybit.json.paths({ json: model, query: "$..radius" });
      

    preview

    • Übergibt das JSON der laufenden Anwendung, um es anzuzeigen und das Speichern als Datei anzubieten; die Anwendung entscheidet, wie die Vorschau aussieht, und nichts passiert, wenn der Wert leer ist.

      Parameter

      • inputs: JsonDto

        Das anzuzeigende JSON

      Rückgabewert void

      Nichts

      bitbybit.json.previewAndSaveJson({ json: model });
      
    • Übergibt das JSON der laufenden Anwendung, um es anzuzeigen; die Anwendung entscheidet, wie die Vorschau aussieht, und nichts passiert, wenn der Wert leer ist.

      Parameter

      • inputs: JsonDto

        Das anzuzeigende JSON

      Rückgabewert void

      Nichts

      bitbybit.json.previewJson({ json: model });
      

    props

    • Setzt eine Eigenschaft der obersten Ebene eines JSON-Objekts auf einen Wert und liefert eine geänderte Kopie; die Eingabe bleibt, wie sie ist, und eine Eigenschaft, die nicht existierte, wird hinzugefügt.

      Parameter

      Rückgabewert any

      Die geänderte Kopie

      const updated = bitbybit.json.setValueOnProp({ json: settings, property: "width", value: 20 });
      
    • Findet das erste Objekt in einer Liste, dessen Eigenschaft dem gegebenen Wert gleicht, verglichen mit strikter Gleichheit, und gibt es zurück; nichts Passendes ergibt undefined.

      Für alles über eine Eigenschaft hinaus verwenden Sie query mit einem Filter.

      Parameter

      Rückgabewert any

      Das erste passende Objekt oder undefined

      const part = bitbybit.json.getJsonFromArrayByFirstPropMatch({ jsonArray: parts, property: "name", match: "lid" });
      
    • Liest eine Eigenschaft der obersten Ebene eines JSON-Objekts; eine fehlende Eigenschaft ergibt undefined.

      Parameter

      Rückgabewert any

      Der Wert der Eigenschaft

      const width = bitbybit.json.getValueOnProp({ json: settings, property: "width" });
      

    transform

    • Verwandelt einen beliebigen JSON-kompatiblen Wert in seinen JSON-Text, auf einer Zeile ohne Einrückung, wie JSON.stringify es tut.

      Parameter

      Rückgabewert string

      Der JSON-Text

      const text = bitbybit.json.stringify({ json: { width: 10, points: [[0, 0, 0], [1, 1, 1]] } });
      
    • Verwandelt JSON-Text in den Wert, den er beschreibt, wie JSON.parse es tut; Text, der kein gültiges JSON ist, löst einen Fehler aus.

      Parameter

      Rückgabewert any

      Der geparste Wert

      const points = bitbybit.json.parse({ text: "[[0, 0, 0], [1, 1, 1]]" });