Json
Diese Datei dokumentiert alle Makrofunktionen der Kategorie Json.
Inhaltsverzeichnis
- JAdd(JSON,Pfad,Wert)
- JAppendArray(JSON,Pfad)
- JAppendObject(JSON,Pfad)
- JAppendValue(JSON,Pfad,Wert)
- JCount(JSON,[Pfad])
- JCreateArray()
- JCreateObject()
- JDelete(JSON,Pfad)
- JExists(JSON,Pfad)
- JFormat(JSON)
- JGet(JSON,Pfad)
- JSet(JSON,Pfad,Wert)
- JSetBool(JSON,Pfad,Wert)
- JSetNull(JSON,Pfad)
- JSetNumber(JSON,Pfad,Wert)
- JSetString(JSON,Pfad,Wert)
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 ===");
}