Json

Diese Datei dokumentiert alle Makrofunktionen der Kategorie Json.

Inhaltsverzeichnis

JAdd(JSON,Pfad,Wert)

Fügt einem Array an einem Pfad ein neues Element hinzu (Context: Connector;Business Extension)

Parameter

Nr. Parameter Beschreibung
1 JSON Das JSON-Dokument, das geändert wird.
2 Pfad Der Pfad zu einem Array, dem ein Element hinzugefügt wird.
3 Wert Das hinzuzufügende Element im JSON-Format.

Rückgabewert

1:Wert hinzugefügt, 0:Fehler

Verfügbarkeit

42 Makro Runtime


JAppendArray(JSON,Pfad)

Fügt einem Array an einem Pfad ein neues leeres Array hinzu (Context: Connector;Business Extension)

Parameter

Nr. Parameter Beschreibung
1 JSON Das JSON-Dokument, das geändert wird.
2 Pfad Der Pfad zu einem Array, dem ein neues Array hinzugefügt wird.

Rückgabewert

1:Array angehängt, 0:Fehler

Verfügbarkeit

42 Makro Runtime

Beispiel

Main()
{
    cls();
    print("=== JSON-Testmakro Start ===");
    print("");
    // 1. Leeres Objekt / Array
    obj = JCreateObject();
    arr = JCreateArray();
    print("Leeres Objekt:");
    print(obj);
    print("");
    print("Leeres Array:");
    print(arr);
    print("");
    // 2. Grundstruktur aufbauen
    json = JCreateObject();
    json = JSetString(json, "$.customer.name", "Max");
    json = JSetNumber(json, "$.customer.age", "42");
    json = JSetBool(json, "$.customer.active", "true");
    json = JSetNull(json, "$.customer.note");
    print("Nach customer:");
    print(JFormat(json));
    print("");
    // 3. Arrays anlegen
    json = JSet(json, "$.items", JCreateArray());
    json = JSet(json, "$.tags", JCreateArray());
    json = JSet(json, "$.matrix", JCreateArray());
    print("Nach Array-Anlage:");
    print(JFormat(json));
    print("");
    // 4. Werte in Arrays anhängen
    json = JAppendValue(json, "$.tags", "\"neu\"");
    json = JAppendValue(json, "$.tags", "\"vip\"");
    json = JAppendValue(json, "$.tags", "123");
    print("Nach JAppendValue:");
    print(JFormat(json));
    print("");
    // 5. Objekt in Array anhängen
    json = JAppendObject(json, "$.items");
    json = JSetNumber(json, "$.items[0].id", "1");
    json = JSetString(json, "$.items[0].name", "Alpha");
    json = JSetBool(json, "$.items[0].visible", "true");
    json = JAppendObject(json, "$.items");
    json = JSetNumber(json, "$.items[1].id", "2");
    json = JSetString(json, "$.items[1].name", "Beta");
    json = JSetBool(json, "$.items[1].visible", "false");
    print("Nach zwei Item-Objekten:");
    print(JFormat(json));
    print("");
    // 6. Array in Array anhängen
    json = JAppendArray(json, "$.matrix");
    json = JAppendValue(json, "$.matrix[0]", "1");
    json = JAppendValue(json, "$.matrix[0]", "2");
    json = JAppendValue(json, "$.matrix[0]", "3");
    json = JAppendArray(json, "$.matrix");
    json = JAppendValue(json, "$.matrix[1]", "4");
    json = JAppendValue(json, "$.matrix[1]", "5");
    print("Nach Matrix-Aufbau:");
    print(JFormat(json));
    print("");
    // 7. Generisches JSet mit Roh-JSON
    json = JSet(json, "$.address", "{ \"city\": \"Köln\", \"zip\": \"50667\" }");
    json = JSet(json, "$.flags", "[true,false,true]");
    print("Nach JSet mit Roh-JSON:");
    print(JFormat(json));
    print("");
    // 8. Lesen
    print("=== Lesen ===");
    print("customer.name   = " + JGet(json, "$.customer.name"));
    print("customer.age    = " + JGet(json, "$.customer.age"));
    print("items[0].name   = " + JGet(json, "$.items[0].name"));
    print("address.city    = " + JGet(json, "$.address.city"));
    print("flags           = " + JGet(json, "$.flags"));
    print("");
    // 9. Exists
    print("=== Exists ===");
    print("$.customer.name        = " + JExists(json, "$.customer.name"));
    print("$.customer.missing     = " + JExists(json, "$.customer.missing"));
    print("$.items[1].visible     = " + JExists(json, "$.items[1].visible"));
    print("$.items[9]             = " + JExists(json, "$.items[9]"));
    print("");
    // 10. Count
    print("=== Count ===");
    print("$.customer = " + JCount(json, "$.customer"));
    print("$.items    = " + JCount(json, "$.items"));
    print("$.tags     = " + JCount(json, "$.tags"));
    print("$.matrix   = " + JCount(json, "$.matrix"));
    print("");
    // 11. Ändern
    json = JSetString(json, "$.customer.name", "Moritz");
    json = JSetNumber(json, "$.customer.age", "43");
    json = JSetBool(json, "$.customer.active", "false");
    json = JSetString(json, "$.items[1].name", "Beta-2");
    print("Nach Änderungen:");
    print(JFormat(json));
    print("");
    // 12. Löschen
    json = JDelete(json, "$.customer.note");
    json = JDelete(json, "$.tags[1]");
    json = JDelete(json, "$.items[0]");
    print("Nach Delete:");
    print(JFormat(json));
    print("");
    // 13. Grenzfälle
    print("=== Grenzfälle ===");
    emptyObj = JCreateObject();
    emptyArr = JCreateArray();
    print("Count leeres Objekt = " + JCount(emptyObj, "$"));
    print("Count leeres Array  = " + JCount(emptyArr, "$"));
    print("Exists leer / $.x   = " + JExists(emptyObj, "$.x"));
    print("Get leer / $.x      = [" + JGet(emptyObj, "$.x") + "]");
    print("");
    // 14. Format-Endstand
    print("=== Final ===");
    print(JFormat(json));
    print("");
    print("=== JSON-Testmakro Ende ===");
}

JAppendObject(JSON,Pfad)

Fügt einem Array an einem Pfad ein neues leeres Objekt hinzu (Context: Connector;Business Extension)

Parameter

Nr. Parameter Beschreibung
1 JSON Das JSON-Dokument, das geändert wird.
2 Pfad Der Pfad zu einem Array, dem ein neues Objekt hinzugefügt wird.

Rückgabewert

1:Objekt angehängt, 0:Fehler

Verfügbarkeit

42 Makro Runtime

Beispiel

Main()
{
    cls();
    print("=== JSON-Testmakro Start ===");
    print("");
    // 1. Leeres Objekt / Array
    obj = JCreateObject();
    arr = JCreateArray();
    print("Leeres Objekt:");
    print(obj);
    print("");
    print("Leeres Array:");
    print(arr);
    print("");
    // 2. Grundstruktur aufbauen
    json = JCreateObject();
    json = JSetString(json, "$.customer.name", "Max");
    json = JSetNumber(json, "$.customer.age", "42");
    json = JSetBool(json, "$.customer.active", "true");
    json = JSetNull(json, "$.customer.note");
    print("Nach customer:");
    print(JFormat(json));
    print("");
    // 3. Arrays anlegen
    json = JSet(json, "$.items", JCreateArray());
    json = JSet(json, "$.tags", JCreateArray());
    json = JSet(json, "$.matrix", JCreateArray());
    print("Nach Array-Anlage:");
    print(JFormat(json));
    print("");
    // 4. Werte in Arrays anhängen
    json = JAppendValue(json, "$.tags", "\"neu\"");
    json = JAppendValue(json, "$.tags", "\"vip\"");
    json = JAppendValue(json, "$.tags", "123");
    print("Nach JAppendValue:");
    print(JFormat(json));
    print("");
    // 5. Objekt in Array anhängen
    json = JAppendObject(json, "$.items");
    json = JSetNumber(json, "$.items[0].id", "1");
    json = JSetString(json, "$.items[0].name", "Alpha");
    json = JSetBool(json, "$.items[0].visible", "true");
    json = JAppendObject(json, "$.items");
    json = JSetNumber(json, "$.items[1].id", "2");
    json = JSetString(json, "$.items[1].name", "Beta");
    json = JSetBool(json, "$.items[1].visible", "false");
    print("Nach zwei Item-Objekten:");
    print(JFormat(json));
    print("");
    // 6. Array in Array anhängen
    json = JAppendArray(json, "$.matrix");
    json = JAppendValue(json, "$.matrix[0]", "1");
    json = JAppendValue(json, "$.matrix[0]", "2");
    json = JAppendValue(json, "$.matrix[0]", "3");
    json = JAppendArray(json, "$.matrix");
    json = JAppendValue(json, "$.matrix[1]", "4");
    json = JAppendValue(json, "$.matrix[1]", "5");
    print("Nach Matrix-Aufbau:");
    print(JFormat(json));
    print("");
    // 7. Generisches JSet mit Roh-JSON
    json = JSet(json, "$.address", "{ \"city\": \"Köln\", \"zip\": \"50667\" }");
    json = JSet(json, "$.flags", "[true,false,true]");
    print("Nach JSet mit Roh-JSON:");
    print(JFormat(json));
    print("");
    // 8. Lesen
    print("=== Lesen ===");
    print("customer.name   = " + JGet(json, "$.customer.name"));
    print("customer.age    = " + JGet(json, "$.customer.age"));
    print("items[0].name   = " + JGet(json, "$.items[0].name"));
    print("address.city    = " + JGet(json, "$.address.city"));
    print("flags           = " + JGet(json, "$.flags"));
    print("");
    // 9. Exists
    print("=== Exists ===");
    print("$.customer.name        = " + JExists(json, "$.customer.name"));
    print("$.customer.missing     = " + JExists(json, "$.customer.missing"));
    print("$.items[1].visible     = " + JExists(json, "$.items[1].visible"));
    print("$.items[9]             = " + JExists(json, "$.items[9]"));
    print("");
    // 10. Count
    print("=== Count ===");
    print("$.customer = " + JCount(json, "$.customer"));
    print("$.items    = " + JCount(json, "$.items"));
    print("$.tags     = " + JCount(json, "$.tags"));
    print("$.matrix   = " + JCount(json, "$.matrix"));
    print("");
    // 11. Ändern
    json = JSetString(json, "$.customer.name", "Moritz");
    json = JSetNumber(json, "$.customer.age", "43");
    json = JSetBool(json, "$.customer.active", "false");
    json = JSetString(json, "$.items[1].name", "Beta-2");
    print("Nach Änderungen:");
    print(JFormat(json));
    print("");
    // 12. Löschen
    json = JDelete(json, "$.customer.note");
    json = JDelete(json, "$.tags[1]");
    json = JDelete(json, "$.items[0]");
    print("Nach Delete:");
    print(JFormat(json));
    print("");
    // 13. Grenzfälle
    print("=== Grenzfälle ===");
    emptyObj = JCreateObject();
    emptyArr = JCreateArray();
    print("Count leeres Objekt = " + JCount(emptyObj, "$"));
    print("Count leeres Array  = " + JCount(emptyArr, "$"));
    print("Exists leer / $.x   = " + JExists(emptyObj, "$.x"));
    print("Get leer / $.x      = [" + JGet(emptyObj, "$.x") + "]");
    print("");
    // 14. Format-Endstand
    print("=== Final ===");
    print(JFormat(json));
    print("");
    print("=== JSON-Testmakro Ende ===");
}

JAppendValue(JSON,Pfad,Wert)

Fügt einem Array an einem Pfad einen Wert hinzu (Context: Connector;Business Extension)

Parameter

Nr. Parameter Beschreibung
1 JSON Das JSON-Dokument, das geändert wird.
2 Pfad Der Pfad zu einem Array, dem ein Wert hinzugefügt wird.
3 Wert Der hinzuzufügende Wert im JSON-Format.

Rückgabewert

1:Wert angehängt, 0:Fehler

Verfügbarkeit

42 Makro Runtime

Beispiel

Main()
{
    cls();
    print("=== JSON-Testmakro Start ===");
    print("");
    // 1. Leeres Objekt / Array
    obj = JCreateObject();
    arr = JCreateArray();
    print("Leeres Objekt:");
    print(obj);
    print("");
    print("Leeres Array:");
    print(arr);
    print("");
    // 2. Grundstruktur aufbauen
    json = JCreateObject();
    json = JSetString(json, "$.customer.name", "Max");
    json = JSetNumber(json, "$.customer.age", "42");
    json = JSetBool(json, "$.customer.active", "true");
    json = JSetNull(json, "$.customer.note");
    print("Nach customer:");
    print(JFormat(json));
    print("");
    // 3. Arrays anlegen
    json = JSet(json, "$.items", JCreateArray());
    json = JSet(json, "$.tags", JCreateArray());
    json = JSet(json, "$.matrix", JCreateArray());
    print("Nach Array-Anlage:");
    print(JFormat(json));
    print("");
    // 4. Werte in Arrays anhängen
    json = JAppendValue(json, "$.tags", "\"neu\"");
    json = JAppendValue(json, "$.tags", "\"vip\"");
    json = JAppendValue(json, "$.tags", "123");
    print("Nach JAppendValue:");
    print(JFormat(json));
    print("");
    // 5. Objekt in Array anhängen
    json = JAppendObject(json, "$.items");
    json = JSetNumber(json, "$.items[0].id", "1");
    json = JSetString(json, "$.items[0].name", "Alpha");
    json = JSetBool(json, "$.items[0].visible", "true");
    json = JAppendObject(json, "$.items");
    json = JSetNumber(json, "$.items[1].id", "2");
    json = JSetString(json, "$.items[1].name", "Beta");
    json = JSetBool(json, "$.items[1].visible", "false");
    print("Nach zwei Item-Objekten:");
    print(JFormat(json));
    print("");
    // 6. Array in Array anhängen
    json = JAppendArray(json, "$.matrix");
    json = JAppendValue(json, "$.matrix[0]", "1");
    json = JAppendValue(json, "$.matrix[0]", "2");
    json = JAppendValue(json, "$.matrix[0]", "3");
    json = JAppendArray(json, "$.matrix");
    json = JAppendValue(json, "$.matrix[1]", "4");
    json = JAppendValue(json, "$.matrix[1]", "5");
    print("Nach Matrix-Aufbau:");
    print(JFormat(json));
    print("");
    // 7. Generisches JSet mit Roh-JSON
    json = JSet(json, "$.address", "{ \"city\": \"Köln\", \"zip\": \"50667\" }");
    json = JSet(json, "$.flags", "[true,false,true]");
    print("Nach JSet mit Roh-JSON:");
    print(JFormat(json));
    print("");
    // 8. Lesen
    print("=== Lesen ===");
    print("customer.name   = " + JGet(json, "$.customer.name"));
    print("customer.age    = " + JGet(json, "$.customer.age"));
    print("items[0].name   = " + JGet(json, "$.items[0].name"));
    print("address.city    = " + JGet(json, "$.address.city"));
    print("flags           = " + JGet(json, "$.flags"));
    print("");
    // 9. Exists
    print("=== Exists ===");
    print("$.customer.name        = " + JExists(json, "$.customer.name"));
    print("$.customer.missing     = " + JExists(json, "$.customer.missing"));
    print("$.items[1].visible     = " + JExists(json, "$.items[1].visible"));
    print("$.items[9]             = " + JExists(json, "$.items[9]"));
    print("");
    // 10. Count
    print("=== Count ===");
    print("$.customer = " + JCount(json, "$.customer"));
    print("$.items    = " + JCount(json, "$.items"));
    print("$.tags     = " + JCount(json, "$.tags"));
    print("$.matrix   = " + JCount(json, "$.matrix"));
    print("");
    // 11. Ändern
    json = JSetString(json, "$.customer.name", "Moritz");
    json = JSetNumber(json, "$.customer.age", "43");
    json = JSetBool(json, "$.customer.active", "false");
    json = JSetString(json, "$.items[1].name", "Beta-2");
    print("Nach Änderungen:");
    print(JFormat(json));
    print("");
    // 12. Löschen
    json = JDelete(json, "$.customer.note");
    json = JDelete(json, "$.tags[1]");
    json = JDelete(json, "$.items[0]");
    print("Nach Delete:");
    print(JFormat(json));
    print("");
    // 13. Grenzfälle
    print("=== Grenzfälle ===");
    emptyObj = JCreateObject();
    emptyArr = JCreateArray();
    print("Count leeres Objekt = " + JCount(emptyObj, "$"));
    print("Count leeres Array  = " + JCount(emptyArr, "$"));
    print("Exists leer / $.x   = " + JExists(emptyObj, "$.x"));
    print("Get leer / $.x      = [" + JGet(emptyObj, "$.x") + "]");
    print("");
    // 14. Format-Endstand
    print("=== Final ===");
    print(JFormat(json));
    print("");
    print("=== JSON-Testmakro Ende ===");
}

JCount(JSON,[Pfad])

Ermittelt die Anzahl von Elementen an einem Pfad im JSON-Dokument

Parameter

Nr. Parameter Beschreibung
1 JSON Das JSON-Dokument, in dem gezählt wird.
2 Pfad Optional: Der Pfad, dessen Elemente gezählt werden sollen.

Rückgabewert

Anzahl Elemente

Verfügbarkeit

42 Makro Runtime

Beispiel

Main()
{
    cls();
    print("=== JSON-Testmakro Start ===");
    print("");
    // 1. Leeres Objekt / Array
    obj = JCreateObject();
    arr = JCreateArray();
    print("Leeres Objekt:");
    print(obj);
    print("");
    print("Leeres Array:");
    print(arr);
    print("");
    // 2. Grundstruktur aufbauen
    json = JCreateObject();
    json = JSetString(json, "$.customer.name", "Max");
    json = JSetNumber(json, "$.customer.age", "42");
    json = JSetBool(json, "$.customer.active", "true");
    json = JSetNull(json, "$.customer.note");
    print("Nach customer:");
    print(JFormat(json));
    print("");
    // 3. Arrays anlegen
    json = JSet(json, "$.items", JCreateArray());
    json = JSet(json, "$.tags", JCreateArray());
    json = JSet(json, "$.matrix", JCreateArray());
    print("Nach Array-Anlage:");
    print(JFormat(json));
    print("");
    // 4. Werte in Arrays anhängen
    json = JAppendValue(json, "$.tags", "\"neu\"");
    json = JAppendValue(json, "$.tags", "\"vip\"");
    json = JAppendValue(json, "$.tags", "123");
    print("Nach JAppendValue:");
    print(JFormat(json));
    print("");
    // 5. Objekt in Array anhängen
    json = JAppendObject(json, "$.items");
    json = JSetNumber(json, "$.items[0].id", "1");
    json = JSetString(json, "$.items[0].name", "Alpha");
    json = JSetBool(json, "$.items[0].visible", "true");
    json = JAppendObject(json, "$.items");
    json = JSetNumber(json, "$.items[1].id", "2");
    json = JSetString(json, "$.items[1].name", "Beta");
    json = JSetBool(json, "$.items[1].visible", "false");
    print("Nach zwei Item-Objekten:");
    print(JFormat(json));
    print("");
    // 6. Array in Array anhängen
    json = JAppendArray(json, "$.matrix");
    json = JAppendValue(json, "$.matrix[0]", "1");
    json = JAppendValue(json, "$.matrix[0]", "2");
    json = JAppendValue(json, "$.matrix[0]", "3");
    json = JAppendArray(json, "$.matrix");
    json = JAppendValue(json, "$.matrix[1]", "4");
    json = JAppendValue(json, "$.matrix[1]", "5");
    print("Nach Matrix-Aufbau:");
    print(JFormat(json));
    print("");
    // 7. Generisches JSet mit Roh-JSON
    json = JSet(json, "$.address", "{ \"city\": \"Köln\", \"zip\": \"50667\" }");
    json = JSet(json, "$.flags", "[true,false,true]");
    print("Nach JSet mit Roh-JSON:");
    print(JFormat(json));
    print("");
    // 8. Lesen
    print("=== Lesen ===");
    print("customer.name   = " + JGet(json, "$.customer.name"));
    print("customer.age    = " + JGet(json, "$.customer.age"));
    print("items[0].name   = " + JGet(json, "$.items[0].name"));
    print("address.city    = " + JGet(json, "$.address.city"));
    print("flags           = " + JGet(json, "$.flags"));
    print("");
    // 9. Exists
    print("=== Exists ===");
    print("$.customer.name        = " + JExists(json, "$.customer.name"));
    print("$.customer.missing     = " + JExists(json, "$.customer.missing"));
    print("$.items[1].visible     = " + JExists(json, "$.items[1].visible"));
    print("$.items[9]             = " + JExists(json, "$.items[9]"));
    print("");
    // 10. Count
    print("=== Count ===");
    print("$.customer = " + JCount(json, "$.customer"));
    print("$.items    = " + JCount(json, "$.items"));
    print("$.tags     = " + JCount(json, "$.tags"));
    print("$.matrix   = " + JCount(json, "$.matrix"));
    print("");
    // 11. Ändern
    json = JSetString(json, "$.customer.name", "Moritz");
    json = JSetNumber(json, "$.customer.age", "43");
    json = JSetBool(json, "$.customer.active", "false");
    json = JSetString(json, "$.items[1].name", "Beta-2");
    print("Nach Änderungen:");
    print(JFormat(json));
    print("");
    // 12. Löschen
    json = JDelete(json, "$.customer.note");
    json = JDelete(json, "$.tags[1]");
    json = JDelete(json, "$.items[0]");
    print("Nach Delete:");
    print(JFormat(json));
    print("");
    // 13. Grenzfälle
    print("=== Grenzfälle ===");
    emptyObj = JCreateObject();
    emptyArr = JCreateArray();
    print("Count leeres Objekt = " + JCount(emptyObj, "$"));
    print("Count leeres Array  = " + JCount(emptyArr, "$"));
    print("Exists leer / $.x   = " + JExists(emptyObj, "$.x"));
    print("Get leer / $.x      = [" + JGet(emptyObj, "$.x") + "]");
    print("");
    // 14. Format-Endstand
    print("=== Final ===");
    print(JFormat(json));
    print("");
    print("=== JSON-Testmakro Ende ===");
}

JCreateArray()

Erstellt ein leeres JSON-Array

Parameter

Diese Funktion hat keine oder keine benannten Parameter.

Rückgabewert

JSON-Array-ID

Verfügbarkeit

42 Makro Runtime

Beispiel

Main()
{
    cls();
    print("=== JSON-Testmakro Start ===");
    print("");
    // 1. Leeres Objekt / Array
    obj = JCreateObject();
    arr = JCreateArray();
    print("Leeres Objekt:");
    print(obj);
    print("");
    print("Leeres Array:");
    print(arr);
    print("");
    // 2. Grundstruktur aufbauen
    json = JCreateObject();
    json = JSetString(json, "$.customer.name", "Max");
    json = JSetNumber(json, "$.customer.age", "42");
    json = JSetBool(json, "$.customer.active", "true");
    json = JSetNull(json, "$.customer.note");
    print("Nach customer:");
    print(JFormat(json));
    print("");
    // 3. Arrays anlegen
    json = JSet(json, "$.items", JCreateArray());
    json = JSet(json, "$.tags", JCreateArray());
    json = JSet(json, "$.matrix", JCreateArray());
    print("Nach Array-Anlage:");
    print(JFormat(json));
    print("");
    // 4. Werte in Arrays anhängen
    json = JAppendValue(json, "$.tags", "\"neu\"");
    json = JAppendValue(json, "$.tags", "\"vip\"");
    json = JAppendValue(json, "$.tags", "123");
    print("Nach JAppendValue:");
    print(JFormat(json));
    print("");
    // 5. Objekt in Array anhängen
    json = JAppendObject(json, "$.items");
    json = JSetNumber(json, "$.items[0].id", "1");
    json = JSetString(json, "$.items[0].name", "Alpha");
    json = JSetBool(json, "$.items[0].visible", "true");
    json = JAppendObject(json, "$.items");
    json = JSetNumber(json, "$.items[1].id", "2");
    json = JSetString(json, "$.items[1].name", "Beta");
    json = JSetBool(json, "$.items[1].visible", "false");
    print("Nach zwei Item-Objekten:");
    print(JFormat(json));
    print("");
    // 6. Array in Array anhängen
    json = JAppendArray(json, "$.matrix");
    json = JAppendValue(json, "$.matrix[0]", "1");
    json = JAppendValue(json, "$.matrix[0]", "2");
    json = JAppendValue(json, "$.matrix[0]", "3");
    json = JAppendArray(json, "$.matrix");
    json = JAppendValue(json, "$.matrix[1]", "4");
    json = JAppendValue(json, "$.matrix[1]", "5");
    print("Nach Matrix-Aufbau:");
    print(JFormat(json));
    print("");
    // 7. Generisches JSet mit Roh-JSON
    json = JSet(json, "$.address", "{ \"city\": \"Köln\", \"zip\": \"50667\" }");
    json = JSet(json, "$.flags", "[true,false,true]");
    print("Nach JSet mit Roh-JSON:");
    print(JFormat(json));
    print("");
    // 8. Lesen
    print("=== Lesen ===");
    print("customer.name   = " + JGet(json, "$.customer.name"));
    print("customer.age    = " + JGet(json, "$.customer.age"));
    print("items[0].name   = " + JGet(json, "$.items[0].name"));
    print("address.city    = " + JGet(json, "$.address.city"));
    print("flags           = " + JGet(json, "$.flags"));
    print("");
    // 9. Exists
    print("=== Exists ===");
    print("$.customer.name        = " + JExists(json, "$.customer.name"));
    print("$.customer.missing     = " + JExists(json, "$.customer.missing"));
    print("$.items[1].visible     = " + JExists(json, "$.items[1].visible"));
    print("$.items[9]             = " + JExists(json, "$.items[9]"));
    print("");
    // 10. Count
    print("=== Count ===");
    print("$.customer = " + JCount(json, "$.customer"));
    print("$.items    = " + JCount(json, "$.items"));
    print("$.tags     = " + JCount(json, "$.tags"));
    print("$.matrix   = " + JCount(json, "$.matrix"));
    print("");
    // 11. Ändern
    json = JSetString(json, "$.customer.name", "Moritz");
    json = JSetNumber(json, "$.customer.age", "43");
    json = JSetBool(json, "$.customer.active", "false");
    json = JSetString(json, "$.items[1].name", "Beta-2");
    print("Nach Änderungen:");
    print(JFormat(json));
    print("");
    // 12. Löschen
    json = JDelete(json, "$.customer.note");
    json = JDelete(json, "$.tags[1]");
    json = JDelete(json, "$.items[0]");
    print("Nach Delete:");
    print(JFormat(json));
    print("");
    // 13. Grenzfälle
    print("=== Grenzfälle ===");
    emptyObj = JCreateObject();
    emptyArr = JCreateArray();
    print("Count leeres Objekt = " + JCount(emptyObj, "$"));
    print("Count leeres Array  = " + JCount(emptyArr, "$"));
    print("Exists leer / $.x   = " + JExists(emptyObj, "$.x"));
    print("Get leer / $.x      = [" + JGet(emptyObj, "$.x") + "]");
    print("");
    // 14. Format-Endstand
    print("=== Final ===");
    print(JFormat(json));
    print("");
    print("=== JSON-Testmakro Ende ===");
}

JCreateObject()

Erstellt ein leeres JSON-Objekt

Parameter

Diese Funktion hat keine oder keine benannten Parameter.

Rückgabewert

JSON-Objekt-ID

Verfügbarkeit

42 Makro Runtime

Beispiel

Main()
{
    cls();
    print("=== JSON-Testmakro Start ===");
    print("");
    // 1. Leeres Objekt / Array
    obj = JCreateObject();
    arr = JCreateArray();
    print("Leeres Objekt:");
    print(obj);
    print("");
    print("Leeres Array:");
    print(arr);
    print("");
    // 2. Grundstruktur aufbauen
    json = JCreateObject();
    json = JSetString(json, "$.customer.name", "Max");
    json = JSetNumber(json, "$.customer.age", "42");
    json = JSetBool(json, "$.customer.active", "true");
    json = JSetNull(json, "$.customer.note");
    print("Nach customer:");
    print(JFormat(json));
    print("");
    // 3. Arrays anlegen
    json = JSet(json, "$.items", JCreateArray());
    json = JSet(json, "$.tags", JCreateArray());
    json = JSet(json, "$.matrix", JCreateArray());
    print("Nach Array-Anlage:");
    print(JFormat(json));
    print("");
    // 4. Werte in Arrays anhängen
    json = JAppendValue(json, "$.tags", "\"neu\"");
    json = JAppendValue(json, "$.tags", "\"vip\"");
    json = JAppendValue(json, "$.tags", "123");
    print("Nach JAppendValue:");
    print(JFormat(json));
    print("");
    // 5. Objekt in Array anhängen
    json = JAppendObject(json, "$.items");
    json = JSetNumber(json, "$.items[0].id", "1");
    json = JSetString(json, "$.items[0].name", "Alpha");
    json = JSetBool(json, "$.items[0].visible", "true");
    json = JAppendObject(json, "$.items");
    json = JSetNumber(json, "$.items[1].id", "2");
    json = JSetString(json, "$.items[1].name", "Beta");
    json = JSetBool(json, "$.items[1].visible", "false");
    print("Nach zwei Item-Objekten:");
    print(JFormat(json));
    print("");
    // 6. Array in Array anhängen
    json = JAppendArray(json, "$.matrix");
    json = JAppendValue(json, "$.matrix[0]", "1");
    json = JAppendValue(json, "$.matrix[0]", "2");
    json = JAppendValue(json, "$.matrix[0]", "3");
    json = JAppendArray(json, "$.matrix");
    json = JAppendValue(json, "$.matrix[1]", "4");
    json = JAppendValue(json, "$.matrix[1]", "5");
    print("Nach Matrix-Aufbau:");
    print(JFormat(json));
    print("");
    // 7. Generisches JSet mit Roh-JSON
    json = JSet(json, "$.address", "{ \"city\": \"Köln\", \"zip\": \"50667\" }");
    json = JSet(json, "$.flags", "[true,false,true]");
    print("Nach JSet mit Roh-JSON:");
    print(JFormat(json));
    print("");
    // 8. Lesen
    print("=== Lesen ===");
    print("customer.name   = " + JGet(json, "$.customer.name"));
    print("customer.age    = " + JGet(json, "$.customer.age"));
    print("items[0].name   = " + JGet(json, "$.items[0].name"));
    print("address.city    = " + JGet(json, "$.address.city"));
    print("flags           = " + JGet(json, "$.flags"));
    print("");
    // 9. Exists
    print("=== Exists ===");
    print("$.customer.name        = " + JExists(json, "$.customer.name"));
    print("$.customer.missing     = " + JExists(json, "$.customer.missing"));
    print("$.items[1].visible     = " + JExists(json, "$.items[1].visible"));
    print("$.items[9]             = " + JExists(json, "$.items[9]"));
    print("");
    // 10. Count
    print("=== Count ===");
    print("$.customer = " + JCount(json, "$.customer"));
    print("$.items    = " + JCount(json, "$.items"));
    print("$.tags     = " + JCount(json, "$.tags"));
    print("$.matrix   = " + JCount(json, "$.matrix"));
    print("");
    // 11. Ändern
    json = JSetString(json, "$.customer.name", "Moritz");
    json = JSetNumber(json, "$.customer.age", "43");
    json = JSetBool(json, "$.customer.active", "false");
    json = JSetString(json, "$.items[1].name", "Beta-2");
    print("Nach Änderungen:");
    print(JFormat(json));
    print("");
    // 12. Löschen
    json = JDelete(json, "$.customer.note");
    json = JDelete(json, "$.tags[1]");
    json = JDelete(json, "$.items[0]");
    print("Nach Delete:");
    print(JFormat(json));
    print("");
    // 13. Grenzfälle
    print("=== Grenzfälle ===");
    emptyObj = JCreateObject();
    emptyArr = JCreateArray();
    print("Count leeres Objekt = " + JCount(emptyObj, "$"));
    print("Count leeres Array  = " + JCount(emptyArr, "$"));
    print("Exists leer / $.x   = " + JExists(emptyObj, "$.x"));
    print("Get leer / $.x      = [" + JGet(emptyObj, "$.x") + "]");
    print("");
    // 14. Format-Endstand
    print("=== Final ===");
    print(JFormat(json));
    print("");
    print("=== JSON-Testmakro Ende ===");
}

JDelete(JSON,Pfad)

Entfernt ein Element an einem Pfad aus dem JSON-Dokument (Context: Connector;Business Extension)

Parameter

Nr. Parameter Beschreibung
1 JSON Das JSON-Dokument, das geändert wird.
2 Pfad Der Pfad zum zu entfernenden Element.

Rückgabewert

1:Element gelöscht, 0:Fehler

Verfügbarkeit

42 Makro Runtime

Beispiel

Main()
{
    cls();
    print("=== JSON-Testmakro Start ===");
    print("");
    // 1. Leeres Objekt / Array
    obj = JCreateObject();
    arr = JCreateArray();
    print("Leeres Objekt:");
    print(obj);
    print("");
    print("Leeres Array:");
    print(arr);
    print("");
    // 2. Grundstruktur aufbauen
    json = JCreateObject();
    json = JSetString(json, "$.customer.name", "Max");
    json = JSetNumber(json, "$.customer.age", "42");
    json = JSetBool(json, "$.customer.active", "true");
    json = JSetNull(json, "$.customer.note");
    print("Nach customer:");
    print(JFormat(json));
    print("");
    // 3. Arrays anlegen
    json = JSet(json, "$.items", JCreateArray());
    json = JSet(json, "$.tags", JCreateArray());
    json = JSet(json, "$.matrix", JCreateArray());
    print("Nach Array-Anlage:");
    print(JFormat(json));
    print("");
    // 4. Werte in Arrays anhängen
    json = JAppendValue(json, "$.tags", "\"neu\"");
    json = JAppendValue(json, "$.tags", "\"vip\"");
    json = JAppendValue(json, "$.tags", "123");
    print("Nach JAppendValue:");
    print(JFormat(json));
    print("");
    // 5. Objekt in Array anhängen
    json = JAppendObject(json, "$.items");
    json = JSetNumber(json, "$.items[0].id", "1");
    json = JSetString(json, "$.items[0].name", "Alpha");
    json = JSetBool(json, "$.items[0].visible", "true");
    json = JAppendObject(json, "$.items");
    json = JSetNumber(json, "$.items[1].id", "2");
    json = JSetString(json, "$.items[1].name", "Beta");
    json = JSetBool(json, "$.items[1].visible", "false");
    print("Nach zwei Item-Objekten:");
    print(JFormat(json));
    print("");
    // 6. Array in Array anhängen
    json = JAppendArray(json, "$.matrix");
    json = JAppendValue(json, "$.matrix[0]", "1");
    json = JAppendValue(json, "$.matrix[0]", "2");
    json = JAppendValue(json, "$.matrix[0]", "3");
    json = JAppendArray(json, "$.matrix");
    json = JAppendValue(json, "$.matrix[1]", "4");
    json = JAppendValue(json, "$.matrix[1]", "5");
    print("Nach Matrix-Aufbau:");
    print(JFormat(json));
    print("");
    // 7. Generisches JSet mit Roh-JSON
    json = JSet(json, "$.address", "{ \"city\": \"Köln\", \"zip\": \"50667\" }");
    json = JSet(json, "$.flags", "[true,false,true]");
    print("Nach JSet mit Roh-JSON:");
    print(JFormat(json));
    print("");
    // 8. Lesen
    print("=== Lesen ===");
    print("customer.name   = " + JGet(json, "$.customer.name"));
    print("customer.age    = " + JGet(json, "$.customer.age"));
    print("items[0].name   = " + JGet(json, "$.items[0].name"));
    print("address.city    = " + JGet(json, "$.address.city"));
    print("flags           = " + JGet(json, "$.flags"));
    print("");
    // 9. Exists
    print("=== Exists ===");
    print("$.customer.name        = " + JExists(json, "$.customer.name"));
    print("$.customer.missing     = " + JExists(json, "$.customer.missing"));
    print("$.items[1].visible     = " + JExists(json, "$.items[1].visible"));
    print("$.items[9]             = " + JExists(json, "$.items[9]"));
    print("");
    // 10. Count
    print("=== Count ===");
    print("$.customer = " + JCount(json, "$.customer"));
    print("$.items    = " + JCount(json, "$.items"));
    print("$.tags     = " + JCount(json, "$.tags"));
    print("$.matrix   = " + JCount(json, "$.matrix"));
    print("");
    // 11. Ändern
    json = JSetString(json, "$.customer.name", "Moritz");
    json = JSetNumber(json, "$.customer.age", "43");
    json = JSetBool(json, "$.customer.active", "false");
    json = JSetString(json, "$.items[1].name", "Beta-2");
    print("Nach Änderungen:");
    print(JFormat(json));
    print("");
    // 12. Löschen
    json = JDelete(json, "$.customer.note");
    json = JDelete(json, "$.tags[1]");
    json = JDelete(json, "$.items[0]");
    print("Nach Delete:");
    print(JFormat(json));
    print("");
    // 13. Grenzfälle
    print("=== Grenzfälle ===");
    emptyObj = JCreateObject();
    emptyArr = JCreateArray();
    print("Count leeres Objekt = " + JCount(emptyObj, "$"));
    print("Count leeres Array  = " + JCount(emptyArr, "$"));
    print("Exists leer / $.x   = " + JExists(emptyObj, "$.x"));
    print("Get leer / $.x      = [" + JGet(emptyObj, "$.x") + "]");
    print("");
    // 14. Format-Endstand
    print("=== Final ===");
    print(JFormat(json));
    print("");
    print("=== JSON-Testmakro Ende ===");
}

JExists(JSON,Pfad)

Prüft, ob ein Pfad in einem JSON-Dokument existiert

Parameter

Nr. Parameter Beschreibung
1 JSON Das JSON-Dokument, in dem gesucht wird.
2 Pfad Der zu prüfende Pfad im JSON-Dokument.

Rückgabewert

1:Vorhanden, 0:Nicht vorhanden

Verfügbarkeit

42 Makro Runtime

Beispiel

Main()
{
    cls();
    print("=== JSON-Testmakro Start ===");
    print("");
    // 1. Leeres Objekt / Array
    obj = JCreateObject();
    arr = JCreateArray();
    print("Leeres Objekt:");
    print(obj);
    print("");
    print("Leeres Array:");
    print(arr);
    print("");
    // 2. Grundstruktur aufbauen
    json = JCreateObject();
    json = JSetString(json, "$.customer.name", "Max");
    json = JSetNumber(json, "$.customer.age", "42");
    json = JSetBool(json, "$.customer.active", "true");
    json = JSetNull(json, "$.customer.note");
    print("Nach customer:");
    print(JFormat(json));
    print("");
    // 3. Arrays anlegen
    json = JSet(json, "$.items", JCreateArray());
    json = JSet(json, "$.tags", JCreateArray());
    json = JSet(json, "$.matrix", JCreateArray());
    print("Nach Array-Anlage:");
    print(JFormat(json));
    print("");
    // 4. Werte in Arrays anhängen
    json = JAppendValue(json, "$.tags", "\"neu\"");
    json = JAppendValue(json, "$.tags", "\"vip\"");
    json = JAppendValue(json, "$.tags", "123");
    print("Nach JAppendValue:");
    print(JFormat(json));
    print("");
    // 5. Objekt in Array anhängen
    json = JAppendObject(json, "$.items");
    json = JSetNumber(json, "$.items[0].id", "1");
    json = JSetString(json, "$.items[0].name", "Alpha");
    json = JSetBool(json, "$.items[0].visible", "true");
    json = JAppendObject(json, "$.items");
    json = JSetNumber(json, "$.items[1].id", "2");
    json = JSetString(json, "$.items[1].name", "Beta");
    json = JSetBool(json, "$.items[1].visible", "false");
    print("Nach zwei Item-Objekten:");
    print(JFormat(json));
    print("");
    // 6. Array in Array anhängen
    json = JAppendArray(json, "$.matrix");
    json = JAppendValue(json, "$.matrix[0]", "1");
    json = JAppendValue(json, "$.matrix[0]", "2");
    json = JAppendValue(json, "$.matrix[0]", "3");
    json = JAppendArray(json, "$.matrix");
    json = JAppendValue(json, "$.matrix[1]", "4");
    json = JAppendValue(json, "$.matrix[1]", "5");
    print("Nach Matrix-Aufbau:");
    print(JFormat(json));
    print("");
    // 7. Generisches JSet mit Roh-JSON
    json = JSet(json, "$.address", "{ \"city\": \"Köln\", \"zip\": \"50667\" }");
    json = JSet(json, "$.flags", "[true,false,true]");
    print("Nach JSet mit Roh-JSON:");
    print(JFormat(json));
    print("");
    // 8. Lesen
    print("=== Lesen ===");
    print("customer.name   = " + JGet(json, "$.customer.name"));
    print("customer.age    = " + JGet(json, "$.customer.age"));
    print("items[0].name   = " + JGet(json, "$.items[0].name"));
    print("address.city    = " + JGet(json, "$.address.city"));
    print("flags           = " + JGet(json, "$.flags"));
    print("");
    // 9. Exists
    print("=== Exists ===");
    print("$.customer.name        = " + JExists(json, "$.customer.name"));
    print("$.customer.missing     = " + JExists(json, "$.customer.missing"));
    print("$.items[1].visible     = " + JExists(json, "$.items[1].visible"));
    print("$.items[9]             = " + JExists(json, "$.items[9]"));
    print("");
    // 10. Count
    print("=== Count ===");
    print("$.customer = " + JCount(json, "$.customer"));
    print("$.items    = " + JCount(json, "$.items"));
    print("$.tags     = " + JCount(json, "$.tags"));
    print("$.matrix   = " + JCount(json, "$.matrix"));
    print("");
    // 11. Ändern
    json = JSetString(json, "$.customer.name", "Moritz");
    json = JSetNumber(json, "$.customer.age", "43");
    json = JSetBool(json, "$.customer.active", "false");
    json = JSetString(json, "$.items[1].name", "Beta-2");
    print("Nach Änderungen:");
    print(JFormat(json));
    print("");
    // 12. Löschen
    json = JDelete(json, "$.customer.note");
    json = JDelete(json, "$.tags[1]");
    json = JDelete(json, "$.items[0]");
    print("Nach Delete:");
    print(JFormat(json));
    print("");
    // 13. Grenzfälle
    print("=== Grenzfälle ===");
    emptyObj = JCreateObject();
    emptyArr = JCreateArray();
    print("Count leeres Objekt = " + JCount(emptyObj, "$"));
    print("Count leeres Array  = " + JCount(emptyArr, "$"));
    print("Exists leer / $.x   = " + JExists(emptyObj, "$.x"));
    print("Get leer / $.x      = [" + JGet(emptyObj, "$.x") + "]");
    print("");
    // 14. Format-Endstand
    print("=== Final ===");
    print(JFormat(json));
    print("");
    print("=== JSON-Testmakro Ende ===");
}

JFormat(JSON)

Formatiert ein JSON-Dokument lesbar

Parameter

Nr. Parameter Beschreibung
1 JSON Das zu formatierende JSON-Dokument.

Rückgabewert

Formatierter JSON-String

Verfügbarkeit

42 Makro Runtime

Beispiel

Main()
{
    cls();
    print("=== JSON-Testmakro Start ===");
    print("");
    // 1. Leeres Objekt / Array
    obj = JCreateObject();
    arr = JCreateArray();
    print("Leeres Objekt:");
    print(obj);
    print("");
    print("Leeres Array:");
    print(arr);
    print("");
    // 2. Grundstruktur aufbauen
    json = JCreateObject();
    json = JSetString(json, "$.customer.name", "Max");
    json = JSetNumber(json, "$.customer.age", "42");
    json = JSetBool(json, "$.customer.active", "true");
    json = JSetNull(json, "$.customer.note");
    print("Nach customer:");
    print(JFormat(json));
    print("");
    // 3. Arrays anlegen
    json = JSet(json, "$.items", JCreateArray());
    json = JSet(json, "$.tags", JCreateArray());
    json = JSet(json, "$.matrix", JCreateArray());
    print("Nach Array-Anlage:");
    print(JFormat(json));
    print("");
    // 4. Werte in Arrays anhängen
    json = JAppendValue(json, "$.tags", "\"neu\"");
    json = JAppendValue(json, "$.tags", "\"vip\"");
    json = JAppendValue(json, "$.tags", "123");
    print("Nach JAppendValue:");
    print(JFormat(json));
    print("");
    // 5. Objekt in Array anhängen
    json = JAppendObject(json, "$.items");
    json = JSetNumber(json, "$.items[0].id", "1");
    json = JSetString(json, "$.items[0].name", "Alpha");
    json = JSetBool(json, "$.items[0].visible", "true");
    json = JAppendObject(json, "$.items");
    json = JSetNumber(json, "$.items[1].id", "2");
    json = JSetString(json, "$.items[1].name", "Beta");
    json = JSetBool(json, "$.items[1].visible", "false");
    print("Nach zwei Item-Objekten:");
    print(JFormat(json));
    print("");
    // 6. Array in Array anhängen
    json = JAppendArray(json, "$.matrix");
    json = JAppendValue(json, "$.matrix[0]", "1");
    json = JAppendValue(json, "$.matrix[0]", "2");
    json = JAppendValue(json, "$.matrix[0]", "3");
    json = JAppendArray(json, "$.matrix");
    json = JAppendValue(json, "$.matrix[1]", "4");
    json = JAppendValue(json, "$.matrix[1]", "5");
    print("Nach Matrix-Aufbau:");
    print(JFormat(json));
    print("");
    // 7. Generisches JSet mit Roh-JSON
    json = JSet(json, "$.address", "{ \"city\": \"Köln\", \"zip\": \"50667\" }");
    json = JSet(json, "$.flags", "[true,false,true]");
    print("Nach JSet mit Roh-JSON:");
    print(JFormat(json));
    print("");
    // 8. Lesen
    print("=== Lesen ===");
    print("customer.name   = " + JGet(json, "$.customer.name"));
    print("customer.age    = " + JGet(json, "$.customer.age"));
    print("items[0].name   = " + JGet(json, "$.items[0].name"));
    print("address.city    = " + JGet(json, "$.address.city"));
    print("flags           = " + JGet(json, "$.flags"));
    print("");
    // 9. Exists
    print("=== Exists ===");
    print("$.customer.name        = " + JExists(json, "$.customer.name"));
    print("$.customer.missing     = " + JExists(json, "$.customer.missing"));
    print("$.items[1].visible     = " + JExists(json, "$.items[1].visible"));
    print("$.items[9]             = " + JExists(json, "$.items[9]"));
    print("");
    // 10. Count
    print("=== Count ===");
    print("$.customer = " + JCount(json, "$.customer"));
    print("$.items    = " + JCount(json, "$.items"));
    print("$.tags     = " + JCount(json, "$.tags"));
    print("$.matrix   = " + JCount(json, "$.matrix"));
    print("");
    // 11. Ändern
    json = JSetString(json, "$.customer.name", "Moritz");
    json = JSetNumber(json, "$.customer.age", "43");
    json = JSetBool(json, "$.customer.active", "false");
    json = JSetString(json, "$.items[1].name", "Beta-2");
    print("Nach Änderungen:");
    print(JFormat(json));
    print("");
    // 12. Löschen
    json = JDelete(json, "$.customer.note");
    json = JDelete(json, "$.tags[1]");
    json = JDelete(json, "$.items[0]");
    print("Nach Delete:");
    print(JFormat(json));
    print("");
    // 13. Grenzfälle
    print("=== Grenzfälle ===");
    emptyObj = JCreateObject();
    emptyArr = JCreateArray();
    print("Count leeres Objekt = " + JCount(emptyObj, "$"));
    print("Count leeres Array  = " + JCount(emptyArr, "$"));
    print("Exists leer / $.x   = " + JExists(emptyObj, "$.x"));
    print("Get leer / $.x      = [" + JGet(emptyObj, "$.x") + "]");
    print("");
    // 14. Format-Endstand
    print("=== Final ===");
    print(JFormat(json));
    print("");
    print("=== JSON-Testmakro Ende ===");
}

JGet(JSON,Pfad)

Liest einen Wert aus einem JSON-Dokument über einen Pfad

Parameter

Nr. Parameter Beschreibung
1 JSON Das JSON-Dokument, aus dem der Wert gelesen wird.
2 Pfad Der Pfad zum gewünschten Element im JSON-Dokument.

Rückgabewert

JSON-Wert

Verfügbarkeit

42 Makro Runtime

Beispiel

Main()
{
    cls();
    print("=== JSON-Testmakro Start ===");
    print("");
    // 1. Leeres Objekt / Array
    obj = JCreateObject();
    arr = JCreateArray();
    print("Leeres Objekt:");
    print(obj);
    print("");
    print("Leeres Array:");
    print(arr);
    print("");
    // 2. Grundstruktur aufbauen
    json = JCreateObject();
    json = JSetString(json, "$.customer.name", "Max");
    json = JSetNumber(json, "$.customer.age", "42");
    json = JSetBool(json, "$.customer.active", "true");
    json = JSetNull(json, "$.customer.note");
    print("Nach customer:");
    print(JFormat(json));
    print("");
    // 3. Arrays anlegen
    json = JSet(json, "$.items", JCreateArray());
    json = JSet(json, "$.tags", JCreateArray());
    json = JSet(json, "$.matrix", JCreateArray());
    print("Nach Array-Anlage:");
    print(JFormat(json));
    print("");
    // 4. Werte in Arrays anhängen
    json = JAppendValue(json, "$.tags", "\"neu\"");
    json = JAppendValue(json, "$.tags", "\"vip\"");
    json = JAppendValue(json, "$.tags", "123");
    print("Nach JAppendValue:");
    print(JFormat(json));
    print("");
    // 5. Objekt in Array anhängen
    json = JAppendObject(json, "$.items");
    json = JSetNumber(json, "$.items[0].id", "1");
    json = JSetString(json, "$.items[0].name", "Alpha");
    json = JSetBool(json, "$.items[0].visible", "true");
    json = JAppendObject(json, "$.items");
    json = JSetNumber(json, "$.items[1].id", "2");
    json = JSetString(json, "$.items[1].name", "Beta");
    json = JSetBool(json, "$.items[1].visible", "false");
    print("Nach zwei Item-Objekten:");
    print(JFormat(json));
    print("");
    // 6. Array in Array anhängen
    json = JAppendArray(json, "$.matrix");
    json = JAppendValue(json, "$.matrix[0]", "1");
    json = JAppendValue(json, "$.matrix[0]", "2");
    json = JAppendValue(json, "$.matrix[0]", "3");
    json = JAppendArray(json, "$.matrix");
    json = JAppendValue(json, "$.matrix[1]", "4");
    json = JAppendValue(json, "$.matrix[1]", "5");
    print("Nach Matrix-Aufbau:");
    print(JFormat(json));
    print("");
    // 7. Generisches JSet mit Roh-JSON
    json = JSet(json, "$.address", "{ \"city\": \"Köln\", \"zip\": \"50667\" }");
    json = JSet(json, "$.flags", "[true,false,true]");
    print("Nach JSet mit Roh-JSON:");
    print(JFormat(json));
    print("");
    // 8. Lesen
    print("=== Lesen ===");
    print("customer.name   = " + JGet(json, "$.customer.name"));
    print("customer.age    = " + JGet(json, "$.customer.age"));
    print("items[0].name   = " + JGet(json, "$.items[0].name"));
    print("address.city    = " + JGet(json, "$.address.city"));
    print("flags           = " + JGet(json, "$.flags"));
    print("");
    // 9. Exists
    print("=== Exists ===");
    print("$.customer.name        = " + JExists(json, "$.customer.name"));
    print("$.customer.missing     = " + JExists(json, "$.customer.missing"));
    print("$.items[1].visible     = " + JExists(json, "$.items[1].visible"));
    print("$.items[9]             = " + JExists(json, "$.items[9]"));
    print("");
    // 10. Count
    print("=== Count ===");
    print("$.customer = " + JCount(json, "$.customer"));
    print("$.items    = " + JCount(json, "$.items"));
    print("$.tags     = " + JCount(json, "$.tags"));
    print("$.matrix   = " + JCount(json, "$.matrix"));
    print("");
    // 11. Ändern
    json = JSetString(json, "$.customer.name", "Moritz");
    json = JSetNumber(json, "$.customer.age", "43");
    json = JSetBool(json, "$.customer.active", "false");
    json = JSetString(json, "$.items[1].name", "Beta-2");
    print("Nach Änderungen:");
    print(JFormat(json));
    print("");
    // 12. Löschen
    json = JDelete(json, "$.customer.note");
    json = JDelete(json, "$.tags[1]");
    json = JDelete(json, "$.items[0]");
    print("Nach Delete:");
    print(JFormat(json));
    print("");
    // 13. Grenzfälle
    print("=== Grenzfälle ===");
    emptyObj = JCreateObject();
    emptyArr = JCreateArray();
    print("Count leeres Objekt = " + JCount(emptyObj, "$"));
    print("Count leeres Array  = " + JCount(emptyArr, "$"));
    print("Exists leer / $.x   = " + JExists(emptyObj, "$.x"));
    print("Get leer / $.x      = [" + JGet(emptyObj, "$.x") + "]");
    print("");
    // 14. Format-Endstand
    print("=== Final ===");
    print(JFormat(json));
    print("");
    print("=== JSON-Testmakro Ende ===");
}

JSet(JSON,Pfad,Wert)

Setzt oder ersetzt einen Wert an einem Pfad im JSON-Dokument (Context: Connector;Business Extension)

Parameter

Nr. Parameter Beschreibung
1 JSON Das JSON-Dokument, das geändert wird.
2 Pfad Der Pfad, an dem der Wert gesetzt wird.
3 Wert Der zu setzende Wert im JSON-Format.

Rückgabewert

1:Wert gesetzt, 0:Fehler

Verfügbarkeit

42 Makro Runtime

Beispiel

Main()
{
    cls();
    print("=== JSON-Testmakro Start ===");
    print("");
    // 1. Leeres Objekt / Array
    obj = JCreateObject();
    arr = JCreateArray();
    print("Leeres Objekt:");
    print(obj);
    print("");
    print("Leeres Array:");
    print(arr);
    print("");
    // 2. Grundstruktur aufbauen
    json = JCreateObject();
    json = JSetString(json, "$.customer.name", "Max");
    json = JSetNumber(json, "$.customer.age", "42");
    json = JSetBool(json, "$.customer.active", "true");
    json = JSetNull(json, "$.customer.note");
    print("Nach customer:");
    print(JFormat(json));
    print("");
    // 3. Arrays anlegen
    json = JSet(json, "$.items", JCreateArray());
    json = JSet(json, "$.tags", JCreateArray());
    json = JSet(json, "$.matrix", JCreateArray());
    print("Nach Array-Anlage:");
    print(JFormat(json));
    print("");
    // 4. Werte in Arrays anhängen
    json = JAppendValue(json, "$.tags", "\"neu\"");
    json = JAppendValue(json, "$.tags", "\"vip\"");
    json = JAppendValue(json, "$.tags", "123");
    print("Nach JAppendValue:");
    print(JFormat(json));
    print("");
    // 5. Objekt in Array anhängen
    json = JAppendObject(json, "$.items");
    json = JSetNumber(json, "$.items[0].id", "1");
    json = JSetString(json, "$.items[0].name", "Alpha");
    json = JSetBool(json, "$.items[0].visible", "true");
    json = JAppendObject(json, "$.items");
    json = JSetNumber(json, "$.items[1].id", "2");
    json = JSetString(json, "$.items[1].name", "Beta");
    json = JSetBool(json, "$.items[1].visible", "false");
    print("Nach zwei Item-Objekten:");
    print(JFormat(json));
    print("");
    // 6. Array in Array anhängen
    json = JAppendArray(json, "$.matrix");
    json = JAppendValue(json, "$.matrix[0]", "1");
    json = JAppendValue(json, "$.matrix[0]", "2");
    json = JAppendValue(json, "$.matrix[0]", "3");
    json = JAppendArray(json, "$.matrix");
    json = JAppendValue(json, "$.matrix[1]", "4");
    json = JAppendValue(json, "$.matrix[1]", "5");
    print("Nach Matrix-Aufbau:");
    print(JFormat(json));
    print("");
    // 7. Generisches JSet mit Roh-JSON
    json = JSet(json, "$.address", "{ \"city\": \"Köln\", \"zip\": \"50667\" }");
    json = JSet(json, "$.flags", "[true,false,true]");
    print("Nach JSet mit Roh-JSON:");
    print(JFormat(json));
    print("");
    // 8. Lesen
    print("=== Lesen ===");
    print("customer.name   = " + JGet(json, "$.customer.name"));
    print("customer.age    = " + JGet(json, "$.customer.age"));
    print("items[0].name   = " + JGet(json, "$.items[0].name"));
    print("address.city    = " + JGet(json, "$.address.city"));
    print("flags           = " + JGet(json, "$.flags"));
    print("");
    // 9. Exists
    print("=== Exists ===");
    print("$.customer.name        = " + JExists(json, "$.customer.name"));
    print("$.customer.missing     = " + JExists(json, "$.customer.missing"));
    print("$.items[1].visible     = " + JExists(json, "$.items[1].visible"));
    print("$.items[9]             = " + JExists(json, "$.items[9]"));
    print("");
    // 10. Count
    print("=== Count ===");
    print("$.customer = " + JCount(json, "$.customer"));
    print("$.items    = " + JCount(json, "$.items"));
    print("$.tags     = " + JCount(json, "$.tags"));
    print("$.matrix   = " + JCount(json, "$.matrix"));
    print("");
    // 11. Ändern
    json = JSetString(json, "$.customer.name", "Moritz");
    json = JSetNumber(json, "$.customer.age", "43");
    json = JSetBool(json, "$.customer.active", "false");
    json = JSetString(json, "$.items[1].name", "Beta-2");
    print("Nach Änderungen:");
    print(JFormat(json));
    print("");
    // 12. Löschen
    json = JDelete(json, "$.customer.note");
    json = JDelete(json, "$.tags[1]");
    json = JDelete(json, "$.items[0]");
    print("Nach Delete:");
    print(JFormat(json));
    print("");
    // 13. Grenzfälle
    print("=== Grenzfälle ===");
    emptyObj = JCreateObject();
    emptyArr = JCreateArray();
    print("Count leeres Objekt = " + JCount(emptyObj, "$"));
    print("Count leeres Array  = " + JCount(emptyArr, "$"));
    print("Exists leer / $.x   = " + JExists(emptyObj, "$.x"));
    print("Get leer / $.x      = [" + JGet(emptyObj, "$.x") + "]");
    print("");
    // 14. Format-Endstand
    print("=== Final ===");
    print(JFormat(json));
    print("");
    print("=== JSON-Testmakro Ende ===");
}

JSetBool(JSON,Pfad,Wert)

Setzt einen booleschen Wert an einem Pfad im JSON-Dokument (Context: Connector;Business Extension)

Parameter

Nr. Parameter Beschreibung
1 JSON Das JSON-Dokument, das geändert wird.
2 Pfad Der Pfad, an dem der boolesche Wert gesetzt wird.
3 Wert Der zu setzende boolesche Wert (true oder false).

Rückgabewert

1:Boolean gesetzt, 0:Fehler

Verfügbarkeit

42 Makro Runtime

Beispiel

Main()
{
    cls();
    print("=== JSON-Testmakro Start ===");
    print("");
    // 1. Leeres Objekt / Array
    obj = JCreateObject();
    arr = JCreateArray();
    print("Leeres Objekt:");
    print(obj);
    print("");
    print("Leeres Array:");
    print(arr);
    print("");
    // 2. Grundstruktur aufbauen
    json = JCreateObject();
    json = JSetString(json, "$.customer.name", "Max");
    json = JSetNumber(json, "$.customer.age", "42");
    json = JSetBool(json, "$.customer.active", "true");
    json = JSetNull(json, "$.customer.note");
    print("Nach customer:");
    print(JFormat(json));
    print("");
    // 3. Arrays anlegen
    json = JSet(json, "$.items", JCreateArray());
    json = JSet(json, "$.tags", JCreateArray());
    json = JSet(json, "$.matrix", JCreateArray());
    print("Nach Array-Anlage:");
    print(JFormat(json));
    print("");
    // 4. Werte in Arrays anhängen
    json = JAppendValue(json, "$.tags", "\"neu\"");
    json = JAppendValue(json, "$.tags", "\"vip\"");
    json = JAppendValue(json, "$.tags", "123");
    print("Nach JAppendValue:");
    print(JFormat(json));
    print("");
    // 5. Objekt in Array anhängen
    json = JAppendObject(json, "$.items");
    json = JSetNumber(json, "$.items[0].id", "1");
    json = JSetString(json, "$.items[0].name", "Alpha");
    json = JSetBool(json, "$.items[0].visible", "true");
    json = JAppendObject(json, "$.items");
    json = JSetNumber(json, "$.items[1].id", "2");
    json = JSetString(json, "$.items[1].name", "Beta");
    json = JSetBool(json, "$.items[1].visible", "false");
    print("Nach zwei Item-Objekten:");
    print(JFormat(json));
    print("");
    // 6. Array in Array anhängen
    json = JAppendArray(json, "$.matrix");
    json = JAppendValue(json, "$.matrix[0]", "1");
    json = JAppendValue(json, "$.matrix[0]", "2");
    json = JAppendValue(json, "$.matrix[0]", "3");
    json = JAppendArray(json, "$.matrix");
    json = JAppendValue(json, "$.matrix[1]", "4");
    json = JAppendValue(json, "$.matrix[1]", "5");
    print("Nach Matrix-Aufbau:");
    print(JFormat(json));
    print("");
    // 7. Generisches JSet mit Roh-JSON
    json = JSet(json, "$.address", "{ \"city\": \"Köln\", \"zip\": \"50667\" }");
    json = JSet(json, "$.flags", "[true,false,true]");
    print("Nach JSet mit Roh-JSON:");
    print(JFormat(json));
    print("");
    // 8. Lesen
    print("=== Lesen ===");
    print("customer.name   = " + JGet(json, "$.customer.name"));
    print("customer.age    = " + JGet(json, "$.customer.age"));
    print("items[0].name   = " + JGet(json, "$.items[0].name"));
    print("address.city    = " + JGet(json, "$.address.city"));
    print("flags           = " + JGet(json, "$.flags"));
    print("");
    // 9. Exists
    print("=== Exists ===");
    print("$.customer.name        = " + JExists(json, "$.customer.name"));
    print("$.customer.missing     = " + JExists(json, "$.customer.missing"));
    print("$.items[1].visible     = " + JExists(json, "$.items[1].visible"));
    print("$.items[9]             = " + JExists(json, "$.items[9]"));
    print("");
    // 10. Count
    print("=== Count ===");
    print("$.customer = " + JCount(json, "$.customer"));
    print("$.items    = " + JCount(json, "$.items"));
    print("$.tags     = " + JCount(json, "$.tags"));
    print("$.matrix   = " + JCount(json, "$.matrix"));
    print("");
    // 11. Ändern
    json = JSetString(json, "$.customer.name", "Moritz");
    json = JSetNumber(json, "$.customer.age", "43");
    json = JSetBool(json, "$.customer.active", "false");
    json = JSetString(json, "$.items[1].name", "Beta-2");
    print("Nach Änderungen:");
    print(JFormat(json));
    print("");
    // 12. Löschen
    json = JDelete(json, "$.customer.note");
    json = JDelete(json, "$.tags[1]");
    json = JDelete(json, "$.items[0]");
    print("Nach Delete:");
    print(JFormat(json));
    print("");
    // 13. Grenzfälle
    print("=== Grenzfälle ===");
    emptyObj = JCreateObject();
    emptyArr = JCreateArray();
    print("Count leeres Objekt = " + JCount(emptyObj, "$"));
    print("Count leeres Array  = " + JCount(emptyArr, "$"));
    print("Exists leer / $.x   = " + JExists(emptyObj, "$.x"));
    print("Get leer / $.x      = [" + JGet(emptyObj, "$.x") + "]");
    print("");
    // 14. Format-Endstand
    print("=== Final ===");
    print(JFormat(json));
    print("");
    print("=== JSON-Testmakro Ende ===");
}

JSetNull(JSON,Pfad)

Setzt einen NULL-Wert an einem Pfad im JSON-Dokument (Context: Connector;Business Extension)

Parameter

Nr. Parameter Beschreibung
1 JSON Das JSON-Dokument, das geändert wird.
2 Pfad Der Pfad, an dem ein NULL-Wert gesetzt wird.

Rückgabewert

1:Null gesetzt, 0:Fehler

Verfügbarkeit

42 Makro Runtime

Beispiel

Main()
{
    cls();
    print("=== JSON-Testmakro Start ===");
    print("");
    // 1. Leeres Objekt / Array
    obj = JCreateObject();
    arr = JCreateArray();
    print("Leeres Objekt:");
    print(obj);
    print("");
    print("Leeres Array:");
    print(arr);
    print("");
    // 2. Grundstruktur aufbauen
    json = JCreateObject();
    json = JSetString(json, "$.customer.name", "Max");
    json = JSetNumber(json, "$.customer.age", "42");
    json = JSetBool(json, "$.customer.active", "true");
    json = JSetNull(json, "$.customer.note");
    print("Nach customer:");
    print(JFormat(json));
    print("");
    // 3. Arrays anlegen
    json = JSet(json, "$.items", JCreateArray());
    json = JSet(json, "$.tags", JCreateArray());
    json = JSet(json, "$.matrix", JCreateArray());
    print("Nach Array-Anlage:");
    print(JFormat(json));
    print("");
    // 4. Werte in Arrays anhängen
    json = JAppendValue(json, "$.tags", "\"neu\"");
    json = JAppendValue(json, "$.tags", "\"vip\"");
    json = JAppendValue(json, "$.tags", "123");
    print("Nach JAppendValue:");
    print(JFormat(json));
    print("");
    // 5. Objekt in Array anhängen
    json = JAppendObject(json, "$.items");
    json = JSetNumber(json, "$.items[0].id", "1");
    json = JSetString(json, "$.items[0].name", "Alpha");
    json = JSetBool(json, "$.items[0].visible", "true");
    json = JAppendObject(json, "$.items");
    json = JSetNumber(json, "$.items[1].id", "2");
    json = JSetString(json, "$.items[1].name", "Beta");
    json = JSetBool(json, "$.items[1].visible", "false");
    print("Nach zwei Item-Objekten:");
    print(JFormat(json));
    print("");
    // 6. Array in Array anhängen
    json = JAppendArray(json, "$.matrix");
    json = JAppendValue(json, "$.matrix[0]", "1");
    json = JAppendValue(json, "$.matrix[0]", "2");
    json = JAppendValue(json, "$.matrix[0]", "3");
    json = JAppendArray(json, "$.matrix");
    json = JAppendValue(json, "$.matrix[1]", "4");
    json = JAppendValue(json, "$.matrix[1]", "5");
    print("Nach Matrix-Aufbau:");
    print(JFormat(json));
    print("");
    // 7. Generisches JSet mit Roh-JSON
    json = JSet(json, "$.address", "{ \"city\": \"Köln\", \"zip\": \"50667\" }");
    json = JSet(json, "$.flags", "[true,false,true]");
    print("Nach JSet mit Roh-JSON:");
    print(JFormat(json));
    print("");
    // 8. Lesen
    print("=== Lesen ===");
    print("customer.name   = " + JGet(json, "$.customer.name"));
    print("customer.age    = " + JGet(json, "$.customer.age"));
    print("items[0].name   = " + JGet(json, "$.items[0].name"));
    print("address.city    = " + JGet(json, "$.address.city"));
    print("flags           = " + JGet(json, "$.flags"));
    print("");
    // 9. Exists
    print("=== Exists ===");
    print("$.customer.name        = " + JExists(json, "$.customer.name"));
    print("$.customer.missing     = " + JExists(json, "$.customer.missing"));
    print("$.items[1].visible     = " + JExists(json, "$.items[1].visible"));
    print("$.items[9]             = " + JExists(json, "$.items[9]"));
    print("");
    // 10. Count
    print("=== Count ===");
    print("$.customer = " + JCount(json, "$.customer"));
    print("$.items    = " + JCount(json, "$.items"));
    print("$.tags     = " + JCount(json, "$.tags"));
    print("$.matrix   = " + JCount(json, "$.matrix"));
    print("");
    // 11. Ändern
    json = JSetString(json, "$.customer.name", "Moritz");
    json = JSetNumber(json, "$.customer.age", "43");
    json = JSetBool(json, "$.customer.active", "false");
    json = JSetString(json, "$.items[1].name", "Beta-2");
    print("Nach Änderungen:");
    print(JFormat(json));
    print("");
    // 12. Löschen
    json = JDelete(json, "$.customer.note");
    json = JDelete(json, "$.tags[1]");
    json = JDelete(json, "$.items[0]");
    print("Nach Delete:");
    print(JFormat(json));
    print("");
    // 13. Grenzfälle
    print("=== Grenzfälle ===");
    emptyObj = JCreateObject();
    emptyArr = JCreateArray();
    print("Count leeres Objekt = " + JCount(emptyObj, "$"));
    print("Count leeres Array  = " + JCount(emptyArr, "$"));
    print("Exists leer / $.x   = " + JExists(emptyObj, "$.x"));
    print("Get leer / $.x      = [" + JGet(emptyObj, "$.x") + "]");
    print("");
    // 14. Format-Endstand
    print("=== Final ===");
    print(JFormat(json));
    print("");
    print("=== JSON-Testmakro Ende ===");
}

JSetNumber(JSON,Pfad,Wert)

Setzt einen numerischen Wert an einem Pfad im JSON-Dokument (Context: Connector;Business Extension)

Parameter

Nr. Parameter Beschreibung
1 JSON Das JSON-Dokument, das geändert wird.
2 Pfad Der Pfad, an dem der numerische Wert gesetzt wird.
3 Wert Der zu setzende numerische Wert.

Rückgabewert

1:Zahl gesetzt, 0:Fehler

Verfügbarkeit

42 Makro Runtime

Beispiel

Main()
{
    cls();
    print("=== JSON-Testmakro Start ===");
    print("");
    // 1. Leeres Objekt / Array
    obj = JCreateObject();
    arr = JCreateArray();
    print("Leeres Objekt:");
    print(obj);
    print("");
    print("Leeres Array:");
    print(arr);
    print("");
    // 2. Grundstruktur aufbauen
    json = JCreateObject();
    json = JSetString(json, "$.customer.name", "Max");
    json = JSetNumber(json, "$.customer.age", "42");
    json = JSetBool(json, "$.customer.active", "true");
    json = JSetNull(json, "$.customer.note");
    print("Nach customer:");
    print(JFormat(json));
    print("");
    // 3. Arrays anlegen
    json = JSet(json, "$.items", JCreateArray());
    json = JSet(json, "$.tags", JCreateArray());
    json = JSet(json, "$.matrix", JCreateArray());
    print("Nach Array-Anlage:");
    print(JFormat(json));
    print("");
    // 4. Werte in Arrays anhängen
    json = JAppendValue(json, "$.tags", "\"neu\"");
    json = JAppendValue(json, "$.tags", "\"vip\"");
    json = JAppendValue(json, "$.tags", "123");
    print("Nach JAppendValue:");
    print(JFormat(json));
    print("");
    // 5. Objekt in Array anhängen
    json = JAppendObject(json, "$.items");
    json = JSetNumber(json, "$.items[0].id", "1");
    json = JSetString(json, "$.items[0].name", "Alpha");
    json = JSetBool(json, "$.items[0].visible", "true");
    json = JAppendObject(json, "$.items");
    json = JSetNumber(json, "$.items[1].id", "2");
    json = JSetString(json, "$.items[1].name", "Beta");
    json = JSetBool(json, "$.items[1].visible", "false");
    print("Nach zwei Item-Objekten:");
    print(JFormat(json));
    print("");
    // 6. Array in Array anhängen
    json = JAppendArray(json, "$.matrix");
    json = JAppendValue(json, "$.matrix[0]", "1");
    json = JAppendValue(json, "$.matrix[0]", "2");
    json = JAppendValue(json, "$.matrix[0]", "3");
    json = JAppendArray(json, "$.matrix");
    json = JAppendValue(json, "$.matrix[1]", "4");
    json = JAppendValue(json, "$.matrix[1]", "5");
    print("Nach Matrix-Aufbau:");
    print(JFormat(json));
    print("");
    // 7. Generisches JSet mit Roh-JSON
    json = JSet(json, "$.address", "{ \"city\": \"Köln\", \"zip\": \"50667\" }");
    json = JSet(json, "$.flags", "[true,false,true]");
    print("Nach JSet mit Roh-JSON:");
    print(JFormat(json));
    print("");
    // 8. Lesen
    print("=== Lesen ===");
    print("customer.name   = " + JGet(json, "$.customer.name"));
    print("customer.age    = " + JGet(json, "$.customer.age"));
    print("items[0].name   = " + JGet(json, "$.items[0].name"));
    print("address.city    = " + JGet(json, "$.address.city"));
    print("flags           = " + JGet(json, "$.flags"));
    print("");
    // 9. Exists
    print("=== Exists ===");
    print("$.customer.name        = " + JExists(json, "$.customer.name"));
    print("$.customer.missing     = " + JExists(json, "$.customer.missing"));
    print("$.items[1].visible     = " + JExists(json, "$.items[1].visible"));
    print("$.items[9]             = " + JExists(json, "$.items[9]"));
    print("");
    // 10. Count
    print("=== Count ===");
    print("$.customer = " + JCount(json, "$.customer"));
    print("$.items    = " + JCount(json, "$.items"));
    print("$.tags     = " + JCount(json, "$.tags"));
    print("$.matrix   = " + JCount(json, "$.matrix"));
    print("");
    // 11. Ändern
    json = JSetString(json, "$.customer.name", "Moritz");
    json = JSetNumber(json, "$.customer.age", "43");
    json = JSetBool(json, "$.customer.active", "false");
    json = JSetString(json, "$.items[1].name", "Beta-2");
    print("Nach Änderungen:");
    print(JFormat(json));
    print("");
    // 12. Löschen
    json = JDelete(json, "$.customer.note");
    json = JDelete(json, "$.tags[1]");
    json = JDelete(json, "$.items[0]");
    print("Nach Delete:");
    print(JFormat(json));
    print("");
    // 13. Grenzfälle
    print("=== Grenzfälle ===");
    emptyObj = JCreateObject();
    emptyArr = JCreateArray();
    print("Count leeres Objekt = " + JCount(emptyObj, "$"));
    print("Count leeres Array  = " + JCount(emptyArr, "$"));
    print("Exists leer / $.x   = " + JExists(emptyObj, "$.x"));
    print("Get leer / $.x      = [" + JGet(emptyObj, "$.x") + "]");
    print("");
    // 14. Format-Endstand
    print("=== Final ===");
    print(JFormat(json));
    print("");
    print("=== JSON-Testmakro Ende ===");
}

JSetString(JSON,Pfad,Wert)

Setzt einen String-Wert an einem Pfad im JSON-Dokument (Context: Connector;Business Extension)

Parameter

Nr. Parameter Beschreibung
1 JSON Das JSON-Dokument, das geändert wird.
2 Pfad Der Pfad, an dem der String gesetzt wird.
3 Wert Der zu setzende Stringwert.

Rückgabewert

1:String gesetzt, 0:Fehler

Verfügbarkeit

42 Makro Runtime

Beispiel

Main()
{
    cls();
    print("=== JSON-Testmakro Start ===");
    print("");
    // 1. Leeres Objekt / Array
    obj = JCreateObject();
    arr = JCreateArray();
    print("Leeres Objekt:");
    print(obj);
    print("");
    print("Leeres Array:");
    print(arr);
    print("");
    // 2. Grundstruktur aufbauen
    json = JCreateObject();
    json = JSetString(json, "$.customer.name", "Max");
    json = JSetNumber(json, "$.customer.age", "42");
    json = JSetBool(json, "$.customer.active", "true");
    json = JSetNull(json, "$.customer.note");
    print("Nach customer:");
    print(JFormat(json));
    print("");
    // 3. Arrays anlegen
    json = JSet(json, "$.items", JCreateArray());
    json = JSet(json, "$.tags", JCreateArray());
    json = JSet(json, "$.matrix", JCreateArray());
    print("Nach Array-Anlage:");
    print(JFormat(json));
    print("");
    // 4. Werte in Arrays anhängen
    json = JAppendValue(json, "$.tags", "\"neu\"");
    json = JAppendValue(json, "$.tags", "\"vip\"");
    json = JAppendValue(json, "$.tags", "123");
    print("Nach JAppendValue:");
    print(JFormat(json));
    print("");
    // 5. Objekt in Array anhängen
    json = JAppendObject(json, "$.items");
    json = JSetNumber(json, "$.items[0].id", "1");
    json = JSetString(json, "$.items[0].name", "Alpha");
    json = JSetBool(json, "$.items[0].visible", "true");
    json = JAppendObject(json, "$.items");
    json = JSetNumber(json, "$.items[1].id", "2");
    json = JSetString(json, "$.items[1].name", "Beta");
    json = JSetBool(json, "$.items[1].visible", "false");
    print("Nach zwei Item-Objekten:");
    print(JFormat(json));
    print("");
    // 6. Array in Array anhängen
    json = JAppendArray(json, "$.matrix");
    json = JAppendValue(json, "$.matrix[0]", "1");
    json = JAppendValue(json, "$.matrix[0]", "2");
    json = JAppendValue(json, "$.matrix[0]", "3");
    json = JAppendArray(json, "$.matrix");
    json = JAppendValue(json, "$.matrix[1]", "4");
    json = JAppendValue(json, "$.matrix[1]", "5");
    print("Nach Matrix-Aufbau:");
    print(JFormat(json));
    print("");
    // 7. Generisches JSet mit Roh-JSON
    json = JSet(json, "$.address", "{ \"city\": \"Köln\", \"zip\": \"50667\" }");
    json = JSet(json, "$.flags", "[true,false,true]");
    print("Nach JSet mit Roh-JSON:");
    print(JFormat(json));
    print("");
    // 8. Lesen
    print("=== Lesen ===");
    print("customer.name   = " + JGet(json, "$.customer.name"));
    print("customer.age    = " + JGet(json, "$.customer.age"));
    print("items[0].name   = " + JGet(json, "$.items[0].name"));
    print("address.city    = " + JGet(json, "$.address.city"));
    print("flags           = " + JGet(json, "$.flags"));
    print("");
    // 9. Exists
    print("=== Exists ===");
    print("$.customer.name        = " + JExists(json, "$.customer.name"));
    print("$.customer.missing     = " + JExists(json, "$.customer.missing"));
    print("$.items[1].visible     = " + JExists(json, "$.items[1].visible"));
    print("$.items[9]             = " + JExists(json, "$.items[9]"));
    print("");
    // 10. Count
    print("=== Count ===");
    print("$.customer = " + JCount(json, "$.customer"));
    print("$.items    = " + JCount(json, "$.items"));
    print("$.tags     = " + JCount(json, "$.tags"));
    print("$.matrix   = " + JCount(json, "$.matrix"));
    print("");
    // 11. Ändern
    json = JSetString(json, "$.customer.name", "Moritz");
    json = JSetNumber(json, "$.customer.age", "43");
    json = JSetBool(json, "$.customer.active", "false");
    json = JSetString(json, "$.items[1].name", "Beta-2");
    print("Nach Änderungen:");
    print(JFormat(json));
    print("");
    // 12. Löschen
    json = JDelete(json, "$.customer.note");
    json = JDelete(json, "$.tags[1]");
    json = JDelete(json, "$.items[0]");
    print("Nach Delete:");
    print(JFormat(json));
    print("");
    // 13. Grenzfälle
    print("=== Grenzfälle ===");
    emptyObj = JCreateObject();
    emptyArr = JCreateArray();
    print("Count leeres Objekt = " + JCount(emptyObj, "$"));
    print("Count leeres Array  = " + JCount(emptyArr, "$"));
    print("Exists leer / $.x   = " + JExists(emptyObj, "$.x"));
    print("Get leer / $.x      = [" + JGet(emptyObj, "$.x") + "]");
    print("");
    // 14. Format-Endstand
    print("=== Final ===");
    print(JFormat(json));
    print("");
    print("=== JSON-Testmakro Ende ===");
}