JSONStreamingBuilder : Bereichsbezogen

  • Freigeben Version: Yokohama
  • Aktualisiert 30. Januar 2025
  • 6 Minuten Lesedauer
  • Erstellen Sie ein Builder-Objekt, das zum Erstellen einer großen Streaming-JSON-Nutzlast 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 im Skriptschritt Workflow-Studio mit dem Namespace-Bezeichner sn_ih. Sie können diese API beispielsweise verwenden, um im Skriptschritt Workflow-Studio eine JSON-Nutzlast zu erstellen und den zurückgegebenen Wert an den REST-Schritt zu übergeben, um die Anforderung an einen Drittanbieterservice zu senden. Weitere Informationen finden Sie im Workflow-Studio Skriptschritt.

    Sie können diese API nur in der Umgebung Workflow-Studio verwenden.

    API-Aufrufreihenfolge

    Generieren Sie JSON-Payloads mit diesen APIs in der folgenden Reihenfolge:

    JSONStreamingBuilder: Erstellt ein Generatorobjekt
    Verwenden Sie diese Methoden in der folgenden Reihenfolge, um ein Builder-Objekt zu erstellen:
    1. JSONStreamingBuilder(): Instanziiert das JSONStreamingBuilder-Objekt.
    2. withAttachment(): 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.
    3. RunesAt(): Optional. Legt eine Uhrzeit fest, nach der der Anhang abläuft. Muss auch withAttachment()- Methode aufrufen.
    4. build(): Gibt ein JSONStreamingAPI-Objekt zurück.
    JSONStreamingAPI: Erstellt die JSON-Nutzlast
    Verwenden Sie diese Methoden in der folgenden Reihenfolge, um die JSON-Payload zu erstellen:
    1. startObject(): Erstellt das übergeordnete JSON-Objekt.
    2. Methoden zum Generieren der JSON-Schlüssel-Wert-Paare, z. B. writeFieldName(), writeString()und writeNumberField().
    3. endObject(): Schließt das übergeordnete JSON-Objekt.
    4. getJSONString() oder getAttachmentId(): Gibt die von Ihnen erstellte JSON-Zeichenfolge oder Anhangs-ID zurück.
    5. close(): 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 Sie ein JSON-Objekt erstellen und es mit einem definierten Ablaufdatum in der Tabelle „Anhang“ [sys_attachment] speichern.

    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 im Skriptschritt die API 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.

    Tabelle : 1. Parameter
    Name Typ Beschreibung
    Keine
    var builder = new sn_ih.JSONStreamingBuilder()

    JSONStreamingBuilder – build()

    Gibt ein JSONStreamingAPI-Objekt zurück.

    Tabelle : 2. Parameter
    Name Typ Beschreibung
    Keine
    Tabelle : 3. Ergebnisse
    Typ Beschreibung
    JSONStreamingAPI Streaming-JSON-Objekt, das zum Erstellen der Nutzlast verwendet wird.

    Dieses Beispiel zeigt, wie Sie ein JSON-Objekt erstellen und es mit einem definierten Ablaufdatum in der Tabelle „Anhang“ [sys_attachment] speichern.

    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 – ExpiresAt(Object ExpiresAt)

    Legt eine Uhrzeit fest, nach der der Anhang abläuft. Muss auch withAttachment()- Methode aufrufen. Wenn Sie diese Methode nicht aufrufen, läuft der Anhang zwei Stunden nach dem Erstellen des Anhangs ab.

    Tabelle : 4. Parameter
    Name Typ Beschreibung
    läuft um ab GlideDateTime Objekt, das festgelegt wird, wenn der Anhang abläuft.
    • Mindestwert: 7200 Sekunden oder zwei Stunden ab Erstellung des Anhangs. Standard
    • Höchstwert: 172.800 Sekunden oder 48 Stunden ab Erstellung des Anhangs.
    Tabelle : 5. Rückgaben
    Typ Beschreibung
    JSONStreamingBuilder Builder-Objekt, das zum Initiieren der JSON-Nutzlast verwendet wird.

    Dieses Beispiel zeigt, wie Sie ein JSON-Objekt erstellen und es mit einem definierten Ablaufdatum in der Tabelle „Anhang“ [sys_attachment] speichern.

    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 – mit Anhang ()

    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.

    Tabelle : 6. Parameter
    Name Typ Beschreibung
    Keine
    Tabelle : 7. Ergebnisse
    Typ Beschreibung
    JSONStreamingBuilder Builder-Objekt, das zum Initiieren der JSON-Nutzlast verwendet wird.

    In diesem Beispiel wird gezeigt, 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-Payload 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();
    }
    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"
    } ]
    }