JSON : Global
Die JSON- Skripteinbindung bietet Methoden zum Erstellen von JSON-Objekten aus einer Zeichenfolge und zum Umwandeln von JSON-Objekten in Zeichenfolgen.
Diese API verfügt über dynamische und statische Methoden. Sie greifen auf die dynamischen Methoden zu, indem Sie ein JSON-Objekt erstellen. Um die dynamischen Methoden in einer bereichsbezogenen Anwendung zu verwenden, fügen Sie beim Aufruf des Konstruktors das globale Präfix hinzu. Sie greifen auf die statischen Methoden zu, indem Sie das statische JSON-Objekt verwenden.
Das native JSON-Objekt von JavaScript ES5 wird anstelle der statischen JSON-Methoden verwendet. Wenn Ihr Skript das alte Verhalten verwenden muss, verwenden Sie die encode()- und decode()-Methoden.
// obj is a JSON formatted object
var parser = new JSON(); // encode() and decode() are dynamic methods.
var str = parser.encode(obj);Die Methoden encode() und decode() sind veraltet. Verwenden Sie stattdessen das JavaScript JSON-Objekt.
// obj is a JSON formatted object
var parser = new global.JSON();
var str = parser.encode(obj);
// obj is a JSON formatted object
var str = JSON.stringify(obj);
// str is a string containing content to be turned into a JSON formatted object
var obj = JSON.parse(str);
JSON – JSON()
Erstellt eine Instanz der JSON-Klasse.
Diese Klasse ist veraltet. Verwenden Sie stattdessen das JavaScript JSON-Objekt.
| Name | Typ | Beschreibung |
|---|---|---|
| Keine |
JSON – decode(String str)
Erstellt einen Objekt- oder Grundtyp aus einer JSON-formatierten Zeichenfolge.
| Name | Typ | Beschreibung |
|---|---|---|
| str | Zeichenfolge | Eine JSON-formatierte Zeichenfolge. |
| Typ | Beschreibung |
|---|---|
| Objekt | Ein Objekt, das aus der angegebenen Zeichenfolge erstellt wurde. |
var str = '{"name":"George","lastname":"Washington"}';
var parser = new JSON();
var obj = parser.decode(str);
gs.info('The first name is ' + obj.name);
Ausgabe: Der Vorname ist „George“
Zur Verwendung in einem bereichsbezogenen Skript.
var str = '{"name":"George","lastname":"Washington"}';
var parser = new global.JSON();
var obj = parser.decode(str);
gs.info('The first name is ' + obj.name);
Ausgabe: Der Vorname ist „George“
JSON – encode(Object jsonObject)
Erstellt eine Zeichenfolge aus einem JSON-Objekt.
| Name | Typ | Beschreibung |
|---|---|---|
| jsonObject | Objekt | Das JSON-Objekt, das in eine Zeichenfolge umgewandelt werden soll. |
| Typ | Beschreibung |
|---|---|
| Zeichenfolge | Eine JSON-formatierte Zeichenfolge. |
var obj = {"name":"George","lastname":"Washington"};
var parser = new JSON();
var str = parser.encode(obj);
gs.info('The object ' + str);
Ausgabe: Das Objekt {"lastname":"Washington","name":"George"}
Zur Verwendung in einem bereichsbezogenen Skript.
var obj = {"name":"George","lastname":"Washington"};
var parser = new global.JSON();
var str = parser.encode(obj);
gs.info('The object ' + str);
JSON – parse(String str)
Erstellt einen Objekt- oder Grundtyp aus einer JSON-formatierten Zeichenfolge.
Das native JSON-Objekt von JavaScript ES5 wird anstelle der statischen JSON-Methoden verwendet. Wenn Ihr Skript das alte Verhalten verwenden muss, verwenden Sie die encode()- und decode()-Methoden.
| Name | Typ | Beschreibung |
|---|---|---|
| str | Zeichenfolge | Eine JSON-formatierte Zeichenfolge. |
| Typ | Beschreibung |
|---|---|
| Objekt | Ein Objekt, das aus der angegebenen Zeichenfolge erstellt wurde. |
var str = '{"name":"George","lastname":"Washington"}';
var obj = JSON.parse(str);
gs.info('The first name is ' + obj.name);
Ausgabe: Der Vorname ist „George“
JSON – stringify(Object jsonObject)
Erstellt eine Zeichenfolge aus einem JSON-Objekt.
Die JSON.stringify()-Methode kann nur Zahlen, Zeichenfolgen und native Java-Objekte in Zeichenfolgen konvertieren. Sie kann keine benutzerdefinierten Objekte in Zeichenfolgen konvertieren, außer diese Objekte stellen eine toJSON()-Methode bereit. Der Aufruf der current.sys_id() gibt ein GlideElement-Objekt zurück, das über keine toJSON()-Methode verfügt. Daher ist der Rückgabewert für Stringify leer: "{}". Das native JSON-Objekt von JavaScript ES5 wird anstelle der statischen JSON-Methoden verwendet. Wenn Ihr Skript das alte Verhalten verwenden muss, verwenden Sie die encode()- und decode()-Methoden.
- Wenn der Wert die toJSON()-Methode aufweist, ist diese für die Definition der serialisierten Daten verantwortlich.
- Boolean-, Number- und String-Objekte werden während der Stringifizierung in die entsprechenden Primitivwerte konvertiert; entsprechend der traditionellen Konvertierungssemantik.
- Wenn während der Konvertierung eine Funktion (undefiniert) oder ein Symbol gefunden wird, wird diese/s entweder weggelassen (wenn sie/es in einem Objekt gefunden wird) oder auf null zensiert (wenn sie/es in einem Array gefunden wird). JSON.stringify() gibt bei der Übergabe von „reinen“ Werten, wie zum Beispiel
JSON.stringify(function(){})oderJSON.stringify(undefined), auch „undefiniert“ zurück. - Alle symbolkodierten Eigenschaften werden ignoriert, sogar wenn eine replacer()-Funktion verwendet wird.
- Datumsinstanzen implementieren die toJSON()-Funktion durch Rückgabe einer Zeichenfolge (gleich wie date.toISOString()). Daher werden sie wie Zeichenfolgen behandelt.
- Die Zahlen „Infinity“ und „NaN“ sowie der Wert „null“ werden alle als „null“ betrachtet.
- Bei allen anderen Objektinstanzen werden nur deren abzählbaren Eigenschaften serialisiert.
| Name | Typ | Beschreibung |
|---|---|---|
| jsonObject | Objekt | Das JSON-Objekt, das in eine Zeichenfolge umgewandelt werden soll. |
| Typ | Beschreibung |
|---|---|
| Zeichenfolge | JSON-formatierte Zeichenfolge. |
var obj = {"name":"George","lastname":"Washington"};
var str = JSON.stringify(obj);
gs.info('The object ' + str);
Ausgabe: Das Objekt {"name":"George","lastname":"Washington"}
Es ist auch möglich, eine replacer()-Funktion zu definieren und diese im stringify()-Aufruf zu verwenden. Diese Funktion nutzt die GlideElement.toString()-Methode, um eine Zeichenfolgendarstellung des GlideElement-Objekts bereitzustellen.
function replacer(name, val) {
// convert GlideElement to string
if ( val && val.constructor === GlideElement ) {
return val.toString();
} else {
return val; // return as is
}
};
var s = global.JSON.stringify(json_obj, replacer);
gs.info("json="+s);