JSONStreamingAPI - 범위 지정됨

  • 릴리스 버전: Xanadu
  • 업데이트 날짜 2024년 08월 01일
  • 읽기57분
  • 대량 데이터를 타사 API로 전송하기 위해 REST 또는 SOAP 요청에 사용할 대규모 스트리밍 JSON 페이로드를 빌드합니다. 비스트리밍 옵션에 대한 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. writeFieldName(),writeString()writeNumberField()와 같은 JSON 키-값 쌍을 생성하는 메서드입니다.
    3. endObject():상위 JSON 객체를 닫습니다.
    4. getJSONString() 또는 getAttachmentId(): 사용자가 작성한 JSON 문자열 또는 첨부 파일 ID를 리턴합니다.
    5. close(): JSONStreamingAPI 오브젝트를 닫습니다.

    크기 제한

    이 API를 통해 작성된 페이로드는 다음 크기 제한을 초과할 수 없습니다.

    • 첨부 파일: 200MB
    • 문자열 : 5MB

    예제

    이 예제에서는 JSON 객체를 만들고 정의된 만료 날짜와 함께 첨부 파일 [sys_attachment] 테이블에 저장합니다. 이 옵션을 사용하여 5MB 미만의 페이로드를 생성할 수 있습니다.

    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 문자열로 생성합니다. 이 옵션을 사용하여 5MB 미만의 페이로드를 생성할 수 있습니다.

    (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. 반환
    유형 설명
    void

    이 예제에서는 JSON 개체를 만들고 정의된 만료 날짜와 함께 Attachment [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 객체입니다.

    이 예제에서는 주소 개체에 예쁜 인쇄 서식을 추가합니다.

    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 개체를 만들고 정의된 만료 날짜와 함께 Attachment [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 개체를 만들고 정의된 만료 날짜와 함께 Attachment [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 개체를 만들고 정의된 만료 날짜와 함께 Attachment [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 개체를 만들고 정의된 만료 날짜와 함께 Attachment [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 개체를 만들고 정의된 만료 날짜와 함께 Attachment [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(부울 상태)

    상위 JSON 객체에 부울 값을 추가합니다.

    표 21. 매개변수
    이름 유형 설명
    상태 부울 상위 JSON 객체에 추가할 부울 값입니다.
    유효한 값은 다음과 같습니다.
    • 거짓
    표 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, 부울 값)

    부울 필드와 값을 상위 JSON 객체에 추가합니다.

    표 23. 매개변수
    이름 유형 설명
    fieldName 문자열 상위 JSON 객체에 추가할 필드의 이름입니다.
    부울 상위 JSON 객체에 추가할 부울 값입니다.
    유효한 값은 다음과 같습니다.
    • 거짓
    표 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(문자열 이름)

    상위 JSON 객체에 필드 이름을 추가합니다.

    표 25. 매개변수
    이름 유형 설명
    이름 문자열 상위 JSON 객체에 추가할 필드 이름입니다.
    표 26. 반환
    유형 설명
    JSONStreamingAPI 페이로드를 구성하는 데 사용되는 스트리밍 JSON 객체입니다.

    이 예제에서는 JSON 개체를 만들고 정의된 만료 날짜와 함께 Attachment [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)

    null 값이 있는 필드를 상위 JSON 객체에 추가합니다.

    표 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(String fieldName, String encodedValue)

    숫자 필드와 값을 상위 JSON 객체에 추가합니다.

    표 31. 매개변수
    이름 유형 설명
    fieldName 문자열 번호 필드의 이름입니다.
    encoded값 문자열 숫자 필드의 값입니다.
    표 32. 반환
    유형 설명
    JSONStreamingAPI 페이로드를 구성하는 데 사용되는 스트리밍 JSON 객체입니다.

    이 예제에서는 JSON 개체를 만들고 정의된 만료 날짜와 함께 Attachment [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(문자열 텍스트)

    상위 JSON 객체에 원시 값을 추가합니다.

    표 33. 매개변수
    이름 유형 설명
    텍스트 문자열 상위 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(문자열 텍스트)

    상위 JSON 객체에 문자열 값을 추가합니다.

    표 35. 매개변수
    이름 유형 설명
    텍스트 문자열 상위 JSON 객체에 추가할 문자열 값입니다.
    표 36. 반환
    유형 설명
    JSONStreamingAPI 페이로드를 구성하는 데 사용되는 스트리밍 JSON 객체입니다.

    이 예제에서는 JSON 개체를 만들고 정의된 만료 날짜와 함께 Attachment [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(문자열 필드 이름, 문자열 값)

    문자열 필드와 값을 상위 JSON 객체에 추가합니다.

    표 37. 매개변수
    이름 유형 설명
    fieldName 문자열 상위 JSON 객체에 추가할 필드의 이름입니다.
    문자열 필드의 값입니다.
    표 38. 반환
    유형 설명
    JSONStreamingAPI 페이로드를 구성하는 데 사용되는 스트리밍 JSON 객체입니다.

    이 예제에서는 JSON 개체를 만들고 정의된 만료 날짜와 함께 Attachment [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();
    }