JSONStreamingBuilder – Umfang
Erstellen Sie ein Generatorobjekt, das zum Erstellen einer großen JSON-Streamingnutzlast verwendet wird, die in einer REST- oder SOAP-Anforderung zum Senden von Massendaten an eine Drittanbieter-API verwendet wird. Sie können die Nutzlast auch als JSON-Zeichenfolge für eine nicht-Streaming-Option erstellen.
Verwenden Sie diese Methoden in Workflow-Studio Skriptschritt mit sn_ih Namespace-Bezeichner. Sie können diese API beispielsweise verwenden, um eine JSON-Nutzlast in zu erstellen Workflow-Studio Skriptschritt und übergeben Sie den zurückgegebenen Wert an den REST-Schritt, um die Anforderung an einen Drittparteiservice zu senden. Weitere Informationen finden Sie unter Workflow-Studio Skriptschritt .
Sie können diese API nur innerhalb von verwenden Workflow-Studio Umgebung.
API-Aufrufreihenfolge
Generieren Sie JSON-Nutzlasten mit diesen APIs in der folgenden Reihenfolge:
- JSONStreamingBuilder : Erstellt ein Generatorobjekt
- Verwenden Sie diese Methoden in der folgenden Reihenfolge, um ein Generatorobjekt zu erstellen:
- JSONStreamingBuilder() : Instanziiert das JSONStreamingBuilder-Objekt.
- Mit Anhang() : Optional. Erstellt das JSON-Objekt als Streaming-Anhang und speichert es in der Tabelle „Streaming-Anhänge“ [Streaming_attachment]. Wenn Sie diese Methode nicht aufrufen, erstellt die API die Nutzlast als JSON-Zeichenfolge.
- ExpresAt() : Optional. Legt einen Zeitpunkt fest, zu dem der Anhang abläuft. Muss auch anrufen Mit Anhang() Methode.
- Build() : Gibt ein JSONStreamingAPI-Objekt zurück.
- JSONStreamingAPI : Erstellt die JSON-Nutzlast
- Verwenden Sie diese Methoden in der folgenden Reihenfolge, um die JSON-Nutzlast zu erstellen:
- StartObject() : Erstellt das übergeordnete JSON-Objekt.
- Methoden zum Generieren der JSON-Schlüssel-Wert-Paare, z. B. WriteFieldName() , WriteString() , Und WriteNumberField() .
- Endobjekt () : Schließt das übergeordnete JSON-Objekt.
- GetJSONString() Oder GetAttachmentId() : Gibt die von Ihnen erstellte JSON-Zeichenfolge oder Anhang-ID zurück.
- Schließen () : Schließt das JSONStreamingAPI-Objekt.
Größenbeschränkungen
Über diese API generierte Nutzlasten dürfen diese Größenbeschränkungen nicht überschreiten:
- Anhänge: 200 MB
- Zeichenfolgen: 5 MB
Beispiele
Dieses Beispiel zeigt, wie ein JSON-Objekt erstellt und in der Tabelle „Anhang“ [sys_attachment] mit einem definierten Ablaufdatum gespeichert wird.
try {
var ttl = new GlideDateTime("2011-01-01 12:00:00");
var builder = new sn_ih.JSONStreamingBuilder()
.withAttachment() // Creates the JSON object in streaming mode within an attachment.
.expiresAt(ttl) // Sets an expiration date for the attachment.
.build(); // Creates the JSONStreamingAPI object.
builder.startObject() // Begins generating the JSON object.
.writeFieldName("firstName") // Adds a "firstName" field
.writeString("John") // Writes the value of the "firstName" field
.writeFieldName("lastName")
.writeString("Smith")
.writeNumberField("age","25") // Write a number field named "age" with value "25"
.writeFieldName("address")
.startObject() // Start a new object nested under the parent object
.writeStringField("streetAddress", "21 2nd Street")
.writeStringField("city", "Santa Clara")
.writeStringField("state", "CA")
.writeStringField("postalCode", "11111")
.endObject()
.writeFieldName("phoneNumber")
.startArray() // Start an array
.startObject() // Add the first object to the array
.writeFieldName("type")
.writeString("home")
.writeFieldName("number")
.writeString("212 555-1234")
.endObject()
.startObject() // Add another object to the array
.writeFieldName("type")
.writeString("fax")
.writeFieldName("number")
.writeString("646 555-4567")
.endObject()
.endArray()
.endObject()
gs.log(builder.getAttachmentId()); // Returns the sys_id of the attachment.
}
catch (err) {
gs.log(err);
}
finally {
builder.close();
}Alternativ zeigt dieses Beispiel, wie Sie die API im Skriptschritt verwenden und die Nutzlast als JSON-Zeichenfolge erstellen. Sie können diese Option verwenden, um Nutzlasten unter 5 MB zu erstellen.
(function execute(inputs, outputs) {
var builder = new sn_ih.JSONStreamingBuilder().build();
builder.startObject()
.enablePrettyPrint()
.writeTextElement("firstName","John")
.writeString("John")
.writeFieldName("lastName")
.writeString("Smith")
.writeNumberField("age","25")
.writeFieldName("address")
.startObject()
.writeStringField("streetAddress", "21 2nd Street")
.writeStringField("city", "Santa Clara")
.writeStringField("state", "CA")
.writeStringField("postalCode", "11111")
.endObject()
.writeFieldName("phoneNumber")
.startArray()
.startObject()
.writeFieldName("type")
.writeString("home")
.writeFieldName("number")
.writeString("212 555-1234")
.endObject()
.startObject()
.writeFieldName("type")
.writeString("fax")
.writeFieldName("number")
.writeString("646 555-4567")
.endObject()
.endArray()
.endObject()
outputs.payload = builder.getJSONString();
})(inputs, outputs);Ausgabe:
{
"firstName" : "John",
"lastName" : "Smith",
"age" : 25,
"address" : {
"streetAddress" : "21 2nd Street",
"city" : "Santa Clara",
"state" : "CA",
"postalCode" : "11111"
},
"phoneNumber" : [ {
"type" : "home",
"number" : "212 555-1234"
}, {
"type" : "fax",
"number" : "646 555-4567"
} ]
}JSONStreamingBuilder – JSONStreamingBuilder()
Instanziiert das JSONStreamingBuilder-Objekt.
| Name | Typ | Beschreibung |
|---|---|---|
| Keine |
var builder = new sn_ih.JSONStreamingBuilder()
JSONStreamingBuilder – build()
Gibt ein JSONStreamingAPI-Objekt zurück.
| Name | Typ | Beschreibung |
|---|---|---|
| Keine |
| Typ | Beschreibung |
|---|---|
| JSONStreamingAPI | Streaming-JSON-Objekt, das zum Erstellen der Nutzlast verwendet wird. |
Dieses Beispiel zeigt, wie ein JSON-Objekt erstellt und in der Tabelle „Anhang“ [sys_attachment] mit einem definierten Ablaufdatum gespeichert wird.
try {
var ttl = new GlideDateTime("2011-01-01 12:00:00");
var builder = new sn_ih.JSONStreamingBuilder()
.withAttachment() // Creates the JSON object in streaming mode within an attachment.
.expiresAt(ttl) // Sets an expiration date for the attachment.
.build(); // Creates the JSONStreamingAPI object.
builder.startObject() // Begins generating the JSON object.
.writeFieldName("firstName") // Adds a "firstName" field
.writeString("John") // Writes the value of the "firstName" field
.writeFieldName("lastName")
.writeString("Smith")
.writeNumberField("age","25") // Write a number field named "age" with value "25"
.writeFieldName("address")
.startObject() // Start a new object nested under the parent object
.writeStringField("streetAddress", "21 2nd Street")
.writeStringField("city", "Santa Clara")
.writeStringField("state", "CA")
.writeStringField("postalCode", "11111")
.endObject()
.writeFieldName("phoneNumber")
.startArray() // Start an array
.startObject() // Add the first object to the array
.writeFieldName("type")
.writeString("home")
.writeFieldName("number")
.writeString("212 555-1234")
.endObject()
.startObject() // Add another object to the array
.writeFieldName("type")
.writeString("fax")
.writeFieldName("number")
.writeString("646 555-4567")
.endObject()
.endArray()
.endObject()
gs.log(builder.getAttachmentId()); // Returns the sys_id of the attachment.
}
catch (err) {
gs.log(err);
}
finally {
builder.close();
}
JSONStreamingBuilder – expresAt(Object expresAt)
Legt einen Zeitpunkt fest, zu dem der Anhang abläuft. Muss auch anrufen Mit Anhang() Methode. Wenn Sie diese Methode nicht aufrufen, läuft der Anhang zwei Stunden ab dem Zeitpunkt der Erstellung des Anhangs ab.
| Name | Typ | Beschreibung |
|---|---|---|
| expiresAt | GlideDateTime | Objekt, das festgelegt wird, wenn der Anhang abläuft.
|
| Typ | Beschreibung |
|---|---|
| JSONStreamingBuilder | Builder-Objekt, das zum Initiieren der JSON-Nutzlast verwendet wird. |
Dieses Beispiel zeigt, wie ein JSON-Objekt erstellt und in der Tabelle „Anhang“ [sys_attachment] mit einem definierten Ablaufdatum gespeichert wird.
try {
var ttl = new GlideDateTime("2011-01-01 12:00:00");
var builder = new sn_ih.JSONStreamingBuilder()
.withAttachment() // Creates the JSON object in streaming mode within an attachment.
.expiresAt(ttl) // Sets an expiration date for the attachment.
.build(); // Creates the JSONStreamingAPI object.
builder.startObject() // Begins generating the JSON object.
.writeFieldName("firstName") // Adds a "firstName" field
.writeString("John") // Writes the value of the "firstName" field
.writeFieldName("lastName")
.writeString("Smith")
.writeNumberField("age","25") // Write a number field named "age" with value "25"
.writeFieldName("address")
.startObject() // Start a new object nested under the parent object
.writeStringField("streetAddress", "21 2nd Street")
.writeStringField("city", "Santa Clara")
.writeStringField("state", "CA")
.writeStringField("postalCode", "11111")
.endObject()
.writeFieldName("phoneNumber")
.startArray() // Start an array
.startObject() // Add the first object to the array
.writeFieldName("type")
.writeString("home")
.writeFieldName("number")
.writeString("212 555-1234")
.endObject()
.startObject() // Add another object to the array
.writeFieldName("type")
.writeString("fax")
.writeFieldName("number")
.writeString("646 555-4567")
.endObject()
.endArray()
.endObject()
gs.log(builder.getAttachmentId()); // Returns the sys_id of the attachment.
}
catch (err) {
gs.log(err);
}
finally {
builder.close();
}
JSONStreamingBuilder – withAttachment()
Erstellt das JSON-Objekt als Streaming-Anhang und speichert es in der Tabelle „Streaming-Anhänge“ [Streaming_attachment]. Wenn Sie diese Methode nicht aufrufen, erstellt die API die Nutzlast als JSON-Zeichenfolge.
| Name | Typ | Beschreibung |
|---|---|---|
| Keine |
| Typ | Beschreibung |
|---|---|
| JSONStreamingBuilder | Builder-Objekt, das zum Initiieren der JSON-Nutzlast verwendet wird. |
Dieses Beispiel zeigt, wie die JSON-Nutzlast erstellt und als Anhang gespeichert wird.
try {
var ttl = new GlideDateTime("2011-01-01 12:00:00");
var builder = new sn_ih.JSONStreamingBuilder()
.withAttachment() // Creates the JSON object in streaming mode within an attachment.
.expiresAt(ttl) // Sets an expiration date for the attachment.
.build(); // Creates the JSONStreamingAPI object.
builder.startObject() // Begins generating the JSON object.
.writeFieldName("firstName") // Adds a "firstName" field
.writeString("John") // Writes the value of the "firstName" field
.writeFieldName("lastName")
.writeString("Smith")
.writeNumberField("age","25") // Write a number field named "age" with value "25"
.writeFieldName("address")
.startObject() // Start a new object nested under the parent object
.writeStringField("streetAddress", "21 2nd Street")
.writeStringField("city", "Santa Clara")
.writeStringField("state", "CA")
.writeStringField("postalCode", "11111")
.endObject()
.writeFieldName("phoneNumber")
.startArray() // Start an array
.startObject() // Add the first object to the array
.writeFieldName("type")
.writeString("home")
.writeFieldName("number")
.writeString("212 555-1234")
.endObject()
.startObject() // Add another object to the array
.writeFieldName("type")
.writeString("fax")
.writeFieldName("number")
.writeString("646 555-4567")
.endObject()
.endArray()
.endObject()
gs.log(builder.getAttachmentId()); // Returns the sys_id of the attachment.
}
catch (err) {
gs.log(err);
}
finally {
builder.close();
}
Dieses Beispiel zeigt, wie die JSON-Nutzlast erstellt und als Zeichenfolge gespeichert wird.
try {
var builder = new sn_ih.JSONStreamingBuilder().build();
builder.startObject()
.writeFieldName("firstName")
.writeString("John")
.writeFieldName("lastName")
.writeString("Smith")
.writeNumberField("age","25")
.writeFieldName("address")
.startObject()
.writeStringField("streetAddress", "21 2nd Street")
.writeStringField("city", "Santa Clara")
.writeStringField("state", "CA")
.writeStringField("postalCode", "11111")
.endObject()
.writeFieldName("phoneNumber")
.startArray()
.startObject()
.writeFieldName("type")
.writeString("home")
.writeFieldName("number")
.writeString("212 555-1234")
.endObject()
.startObject()
.writeFieldName("type")
.writeString("fax")
.writeFieldName("number")
.writeString("646 555-4567")
.endObject()
.endArray()
.endObject()
gs.log(builder.getJSONString());
}
catch (err) {
gs.log("Exception: " + err);
}
finally {
builder.close();
}
{
"firstName" : "John",
"lastName" : "Smith",
"age" : 25,
"address" : {
"streetAddress" : "21 2nd Street",
"city" : "Santa Clara",
"state" : "CA",
"postalCode" : "11111"
},
"phoneNumber" : [ {
"type" : "home",
"number" : "212 555-1234"
}, {
"type" : "fax",
"number" : "646 555-4567"
} ]
}