JSONStreamingAPI :スコープ指定

  • リリースバージョン: Xanadu
  • 更新日 2024年08月01日
  • 所要時間:58分
  • 大規模なストリーミング JSON ペイロードをビルドし、REST または SOAP 要求で使用して大量のデータをサードパーティ API に送信します。非ストリーミングオプション用の JSON 文字列としてペイロードを作成することもできます。

    これらのメソッドを ワークフロースタジオ スクリプトステップで sn_ih 名前空間識別子とともに使用します。たとえば、この API を使用して ワークフロースタジオ スクリプトステップで JSON ペイロードを作成し、戻り値を REST ステップに渡して、要求をサードパーティサービスに送信できます。詳細については、「ワークフロースタジオ スクリプトステップ」を参照してください。

    この API は ワークフロースタジオ 環境内でのみ使用できます。

    このクラスを使用するには、JSONStreamingBuilder クラスで build() メソッドを呼び出して JSONStreamingAPI オブジェクトを返す必要があります。「JSONStreamingBuilder - スコープ指定」を参照してください。

    API 呼び出し順

    次の API を順番に使用して JSON ペイロードを生成します。

    JSONStreamingBuilder:ビルダーオブジェクトを作成する
    下記のメソッドを次の順番で使用して、ビルダーオブジェクトを作成します。
    1. JSONStreamingBuilder()JSONStreamingBuilder オブジェクトをインスタンス化します。
    2. withAttachment():オプション。ストリーミング添付ファイルとして JSON オブジェクトを作成し、ストリーミング添付ファイル [streaming_attachment] テーブルに格納します。このメソッドを呼び出さない場合、API はペイロードを JSON 文字列として作成します。
    3. expiresAt():オプション。添付ファイルの有効期限が切れる時刻を設定します。withAttachment() メソッドも呼び出す必要があります。
    4. build()JSONStreamingAPI オブジェクトを返します。
    JSONStreamingAPI:JSON ペイロードをビルドする
    下記のメソッドを次の順番で使用して、JSON ペイロードを作成します。
    1. startObject()親 JSON オブジェクトを作成します。
    2. JSON のキーと値のペアを生成するメソッド :writeFieldName()writeString()writeNumberField() など。
    3. endObject()親 JSON オブジェクトを閉じます。
    4. getJSONString() または getAttachmentId():作成した JSON 文字列または添付ファイル ID を返します。
    5. close()JSONStreamingAPI オブジェクトを閉じます。

    サイズ制限

    この API を介して生成されたペイロードは、次のサイズ制限を超えることはできません。

    • 添付ファイル:200 MB
    • 文字列:5 MB

    この例では、JSON オブジェクトを作成し、定義された有効期限とともに添付ファイル [sys_attachment] テーブルに格納します。このオプションを使用すると、5 MB 未満のペイロードを作成できます。

    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();
    }

    一方この例では、 スクリプトステップで API を使用し、ペイロードを JSON 文字列として作成します。このオプションを使用すると、5 MB 未満のペイロードを作成できます。

    (function execute(inputs, outputs) {
    
      var builder = new sn_ih.JSONStreamingBuilder().build();
      
      builder.startObject()
        .enablePrettyPrint()
        .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()
    
      outputs.payload = builder.getJSONString();
      
    })(inputs, outputs);

    出力:

    {
    "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"
    } ]
    }

    JSONStreamingAPI - close()

    JSONStreamingAPI オブジェクトを閉じます。 JSON オブジェクトの構築後は、このメソッドを呼び出してストリームを閉じる必要があります。

    表 : 1. パラメーター
    名前 タイプ 説明
    なし
    表 : 2. 返される内容
    タイプ 説明
    なし

    この例では、JSON オブジェクトを作成し、定義された有効期限とともに添付ファイル [sys_attachment] テーブルに格納する方法を示します。

    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();
    }

    JSONStreamingAPI - disablePrettyPrint()

    JSON 形式のプリティプリントを終了します。

    このメソッドを呼び出す前に、まず enablePrettyPrint() を呼び出して、特定のセクションに JSON 形式を追加する必要があります。

    表 : 3. パラメーター
    名前 タイプ 説明
    なし
    表 : 4. 返される内容
    タイプ 説明
    JSONStreamingAPI ペイロードのビルドに使用されるストリーミング JSON オブジェクト。

    この例では、address オブジェクトにプリティプリント形式を追加します。

    try {
      var builder = new sn_ih.JSONStreamingBuilder().build();
    
      builder.startObject()
        .writeFieldName("firstName")
        .writeString("John")
        .writeFieldName("lastName")
        .writeString("Smith")  
        .writeNumberField("age","25")
        .enablePrettyPrint()
        .writeFieldName("address")
        .startObject()
        .writeStringField("streetAddress", "21 2nd Street")
        .writeStringField("city", "Santa Clara")
        .writeStringField("state", "CA")
        .writeStringField("postalCode", "11111")
        .endObject()
        .disablePrettyPrint()
        .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"}]}

    JSONStreamingAPI - enablePrettyPrint()

    JSON オブジェクトまたは JSON オブジェクトのセクションにプリティプリント形式を追加します。

    JSON オブジェクトセクションでプリティプリントの書式設定を無効にするには、disablePrettyPrint() メソッドを使用します。

    表 : 5. パラメーター
    名前 タイプ 説明
    なし
    表 : 6. 返される内容
    タイプ 説明
    JSONStreamingAPI ペイロードのビルドに使用されるストリーミング JSON オブジェクト。
    try {
      var builder = new sn_ih.JSONStreamingBuilder().build();
    
      builder.enablePrettyPrint()
        .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"
    } ]
    }

    JSONStreamingAPI - endArray()

    親 JSON オブジェクト内のアレイを閉じます。

    最初に startArray() メソッドを呼び出してアレイを開きます。

    表 : 7. パラメーター
    名前 タイプ 説明
    なし
    表 : 8. 返される内容
    タイプ 説明
    JSONStreamingAPI ペイロードのビルドに使用されるストリーミング JSON オブジェクト。

    この例では、JSON オブジェクトを作成し、定義された有効期限とともに添付ファイル [sys_attachment] テーブルに格納する方法を示します。

    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();
    }

    JSONStreamingAPI - endObject()

    親 JSON オブジェクト内のオブジェクトを閉じます。

    最初に startObject() メソッドを呼び出してオブジェクトを開きます。

    表 : 9. パラメーター
    名前 タイプ 説明
    なし
    表 : 10. 返される内容
    タイプ 説明
    JSONStreamingAPI ペイロードのビルドに使用されるストリーミング JSON オブジェクト。

    この例では、JSON オブジェクトを作成し、定義された有効期限とともに添付ファイル [sys_attachment] テーブルに格納する方法を示します。

    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();
    }

    JSONStreamingAPI - getAttachmentId()

    JSON ペイロードを含むストリーミング添付ファイル [streaming_attachment] テーブルの、添付ファイルのレコードの sys_id を返します。

    このメソッドを呼び出す前に、JSONStreamingBuilder クラスの withAttachment() メソッドを呼び出して、JSON ペイロードを添付ファイルとして保存する必要があります。「JSONStreamingBuilder - スコープ指定」を参照してください。

    表 : 11. パラメーター
    名前 タイプ 説明
    なし
    表 : 12. 返される内容
    タイプ 説明
    文字列 JSON ペイロードを含むストリーミング添付ファイル [streaming_attachment] テーブルの、添付ファイルのレコードの sys_id。

    この例では、JSON オブジェクトを作成し、定義された有効期限とともに添付ファイル [sys_attachment] テーブルに格納する方法を示します。

    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();
    }

    JSONStreamingAPI - getJSONString()

    JSON オブジェクトを文字列として返します。

    JSON オブジェクトを文字列として返すには、JSONStreamingBuilder クラスで withAttachment() メソッドを呼び出さないでください。「JSONStreamingBuilder - スコープ指定」を参照してください。

    表 : 13. パラメーター
    名前 タイプ 説明
    なし
    表 : 14. 返される内容
    タイプ 説明
    文字列 JSONStreamingAPI を使用して構築された JSON オブジェクトが含まれます。
    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"
    } ]
    }

    JSONStreamingAPI - startArray()

    親 JSON オブジェクト内のアレイを開きます。

    アレイを閉じるには、endArray() メソッドを含めます。

    表 : 15. パラメーター
    名前 タイプ 説明
    なし
    表 : 16. 返される内容
    タイプ 説明
    JSONStreamingAPI ペイロードのビルドに使用されるストリーミング JSON オブジェクト。

    この例では、JSON オブジェクトを作成し、定義された有効期限とともに添付ファイル [sys_attachment] テーブルに格納する方法を示します。

    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();
    }

    JSONStreamingAPI - startArrayField(文字列 fieldName)

    親 JSON オブジェクト内にアレイを作成します。

    このメソッドを startArray() メソッドと endArray() メソッドで囲むと、アレイを開いて閉じることができます。

    表 : 17. パラメーター
    名前 タイプ 説明
    fieldName 文字列 アレイの名前。
    表 : 18. 返される内容
    タイプ 説明
    JSONStreamingAPI ペイロードのビルドに使用されるストリーミング JSON オブジェクト。
    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()
        .startArrayField("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();
    }
    

    JSONStreamingAPI - startObject()

    親 JSON オブジェクト内のオブジェクトを開きます。

    オブジェクトを閉じるには、endObject() メソッドが必要です。

    表 : 19. パラメーター
    名前 タイプ 説明
    なし
    表 : 20. 返される内容
    タイプ 説明
    JSONStreamingAPI ペイロードのビルドに使用されるストリーミング JSON オブジェクト。

    この例では、JSON オブジェクトを作成し、定義された有効期限とともに添付ファイル [sys_attachment] テーブルに格納する方法を示します。

    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();
    }

    JSONStreamingAPI - writeBoolean(ブーリアン state)

    親 JSON オブジェクトにブール値を追加します。

    表 : 21. パラメーター
    名前 タイプ 説明
    state ブーリアン 親 JSON オブジェクトに追加するブーリアン値。
    有効な値:
    • true
    • false
    表 : 22. 返される内容
    タイプ 説明
    JSONStreamingAPI ペイロードのビルドに使用されるストリーミング JSON オブジェクト。
    try {
      var builder = new sn_ih.JSONStreamingBuilder().build();
    
      builder.startObject()
        .writeFieldName("firstName")
        .writeString("John")
        .writeFieldName("lastName")
        .writeString("Smith")
        .writeFieldName("activeUser")
        .writeBoolean(true)
        .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();
    }

    JSONStreamingAPI - writeBooleanField(文字列 fieldName, ブーリアン value)

    親 JSON オブジェクトにブーリアンのフィールドと値を追加します。

    表 : 23. パラメーター
    名前 タイプ 説明
    fieldName 文字列 親 JSON オブジェクトに追加するフィールドの名前。
    value ブーリアン 親 JSON オブジェクトに追加するブーリアン値。
    有効な値:
    • true
    • false
    表 : 24. 返される内容
    タイプ 説明
    JSONStreamingAPI ペイロードのビルドに使用されるストリーミング JSON オブジェクト。
    try {
      var builder = new sn_ih.JSONStreamingBuilder().build();
    
      builder.startObject()
        .writeFieldName("firstName")
        .writeString("John")
        .writeFieldName("lastName")
        .writeString("Smith")
        .writeBooleanField("activeUser", true)
        .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();
    }

    JSONStreamingAPI - writeFieldName(文字列 name)

    親 JSON オブジェクトにフィールド名を追加します。

    表 : 25. パラメーター
    名前 タイプ 説明
    name 文字列 親 JSON オブジェクトに追加するフィールド名。
    表 : 26. 返される内容
    タイプ 説明
    JSONStreamingAPI ペイロードのビルドに使用されるストリーミング JSON オブジェクト。

    この例では、JSON オブジェクトを作成し、定義された有効期限とともに添付ファイル [sys_attachment] テーブルに格納する方法を示します。

    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();
    }

    JSONStreamingAPI - writeNull()

    親 JSON オブジェクトに null 値を追加します。

    表 : 27. パラメーター
    名前 タイプ 説明
    なし
    表 : 28. 返される内容
    タイプ 説明
    JSONStreamingAPI ペイロードのビルドに使用されるストリーミング JSON オブジェクト。
    try {
      var builder = new sn_ih.JSONStreamingBuilder().build();
    
      builder.startObject()
        .writeFieldName("firstName")
        .writeString("John")
        .writeFieldName("lastName")
        .writeString("Smith")
        .writeFieldName("activeUser")
        .writeNull()
        .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();
    }

    JSONStreamingAPI - writeNullField(文字列 fieldName)

    親 JSON オブジェクトに null 値が入ったフィールドを追加します。

    表 : 29. パラメーター
    名前 タイプ 説明
    fieldName 文字列 null フィールドの名前。
    表 : 30. 返される内容
    タイプ 説明
    JSONStreamingAPI ペイロードのビルドに使用されるストリーミング JSON オブジェクト。
    try {
      var builder = new sn_ih.JSONStreamingBuilder().build();
    
      builder.startObject()
        .writeFieldName("firstName")
        .writeString("John")
        .writeFieldName("lastName")
        .writeString("Smith")
        .writeNullField("activeUser")
        .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();
    }

    JSONStreamingAPI - writeNumberField(文字列 fieldName, 文字列 encodedValue)

    親 JSON オブジェクトに数字のフィールドと値を追加します。

    表 : 31. パラメーター
    名前 タイプ 説明
    fieldName 文字列 数字フィールドの名前。
    エンコードされた値 文字列 数字フィールドの値。
    表 : 32. 返される内容
    タイプ 説明
    JSONStreamingAPI ペイロードのビルドに使用されるストリーミング JSON オブジェクト。

    この例では、JSON オブジェクトを作成し、定義された有効期限とともに添付ファイル [sys_attachment] テーブルに格納する方法を示します。

    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();
    }

    JSONStreamingAPI - writeRaw(文字列 text)

    親 JSON オブジェクトに生の値を追加します。

    表 : 33. パラメーター
    名前 タイプ 説明
    text 文字列 親 JSON オブジェクトに追加する生のテキスト。
    表 : 34. 返される内容
    タイプ 説明
    JSONStreamingAPI ペイロードのビルドに使用されるストリーミング JSON オブジェクト。
    try {
      var builder = new sn_ih.JSONStreamingBuilder().build();
    
      builder.startObject()
        .writeFieldName("firstName")
        .writeString("John")
        .writeFieldName("lastName")
        .writeString("Smith")
        .writeFieldName("filePath")
        .writeRaw("C:\Users\profile\aboutme.html")
        .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();
    }

    JSONStreamingAPI - writeString(文字列 text)

    親 JSON オブジェクトに文字列の値を追加します。

    表 : 35. パラメーター
    名前 タイプ 説明
    text 文字列 親 JSON オブジェクトに追加する文字列の値。
    表 : 36. 返される内容
    タイプ 説明
    JSONStreamingAPI ペイロードのビルドに使用されるストリーミング JSON オブジェクト。

    この例では、JSON オブジェクトを作成し、定義された有効期限とともに添付ファイル [sys_attachment] テーブルに格納する方法を示します。

    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();
    }

    JSONStreamingAPI - writeStringField(文字列 fieldName, 文字列 value)

    親 JSON オブジェクトに文字列のフィールドと値を追加します。

    表 : 37. パラメーター
    名前 タイプ 説明
    fieldName 文字列 親 JSON オブジェクトに追加するフィールドの名前。
    value 文字列 フィールドの値。
    表 : 38. 返される内容
    タイプ 説明
    JSONStreamingAPI ペイロードのビルドに使用されるストリーミング JSON オブジェクト。

    この例では、JSON オブジェクトを作成し、定義された有効期限とともに添付ファイル [sys_attachment] テーブルに格納する方法を示します。

    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();
    }