---
sourceDocument: 호주 API 참조
sourceDocumentLink: https://servicenow-prod.fluidtopics.net/r/ko-KR/api-reference

 Release :

    - australia

ft:locale :

    - ko-KR

ft:publication_title :

    - 호주 API 참조

ft:clusterId :

    - crapiref

bundleId :

    - crapiref

workflow :

    - Creator


---

# JSONStreamingAPI - 범위가 지정됨

# JSONStreamingAPI - 범위가 지정됨 {#ariaid-title1}

* 릴리스 버전: Australia
* 
* 업데이트 날짜 2026년 03월 12일
* 
* ![](https://www.servicenow.com/docs/portal-asset/ico-clock) 소요 시간: 57분

REST 또는 SOAP 요청에 사용할 대형 스트리밍 JSON 페이로드를 빌드하여 대량 데이터를 외부 공급업체 API로 보냅니다. 페이로드를 비스트리밍 옵션에 대한 JSON 문자열로 생성할 수도 있습니다.
스크립트 단계에서 `sn_ih` 네임스페이스 식별자와 함께 이러한 방법을 워크플로우 스튜디오 사용합니다. 예를 들어 이 API를 사용하여 스크립트 단계에서 JSON 페이로드 워크플로우 스튜디오 를 생성하고 반환된 값을 REST 단계에 전달하여 요청을 외부 공급업체 서비스로 보낼 수 있습니다. 자세한 내용은 워크플로우 스튜디오 [스크립트 단계를 참조하십시오.](https://www.servicenow.com/docs/access?context=javascript-step-action-designer&version=australia&pubname=australia-build-workflows&ft:locale=en-US)

환경 내 워크플로우 스튜디오 에서만 이 API를 사용할 수 있습니다.

이 클래스를 사용하려면 JSONStreamingBuilder 클래스에서 build() 메서드를 호출하여 JSONStreamingAPI 객체를 반환해야 합니다. [JSONStreamingBuilder - 범위 지정됨](https://servicenow-prod.fluidtopics.net/J5RX6Hl0aXB0Z7QYyGFilQ#JSONStreamingBuilderScopedAPI "대량 데이터를 타사 API로 보내기 위한 REST 또는 SOAP 요청에 사용할 대형 스트리밍 JSON 페이로드를 빌드하는 데 사용되는 작성기 객체를 생성합니다. 페이로드를 비스트리밍 옵션에 대한 JSON 문자열로 생성할 수도 있습니다.") 문서를 참조하십시오.

## API 호출 순서 {#JSONStreamingAPIScopedAPI__section_owy_pd5_hlb}

다음 순서로 이러한 API를 사용하여 JSON 페이로드를 생성합니다.  

JSONStreamingBuilder: 작성기 객체를 작성합니다.
:   다음 순서대로 이러한 메서드를 사용하여 작성기 객체를 생성합니다.  
    1. JSONStreamingBuilder(): JSONStreamingBuilder 객체를 인스턴스화합니다.{#JSONStreamingAPIScopedAPI__json-api-constructor}
    2. withAttachment(): 선택 사항입니다. JSON 객체를 스트리밍 첨부 파일로 만들고 스트리밍 첨부 파일 \[streaming_attachment\] 테이블에 저장합니다. 이 메서드를 호출하지 않으면 API는 페이로드를 JSON 문자열로 생성합니다.{#JSONStreamingAPIScopedAPI__with-attachments}
    3. expiresAt(): 선택 사항입니다. 첨부 파일이 만료되는 시간을 설정합니다. withAttachment() 메서드도 호출해야 합니다.{#JSONStreamingAPIScopedAPI__expires-at}
    4. build(): JSONStreamingAPI 객체를 반환합니다.{#JSONStreamingAPIScopedAPI__build}
    {#JSONStreamingAPIScopedAPI__ol_obn_dd5_hlb}

JSONStreamingAPI: JSON 페이로드를 빌드합니다.
:   다음 순서대로 이러한 메서드를 사용하여 JSON 페이로드를 생성합니다.  
    1. startObject(): 상위 JSON 객체를 만듭니다.{#JSONStreamingAPIScopedAPI__start-object}
    2. writeFieldName(),writeString() 및 writeNumberField()와 같은 JSON 키-값 쌍을 생성하는 메서드입니다.
    3. endObject(): 상위 JSON 객체를 닫습니다.{#JSONStreamingAPIScopedAPI__end-object}
    4. getJSONString() 또는 getAttachmentId(): 사용자가 생성한 JSON 문자열 또는 첨부 파일 ID를 반환합니다.
    5. close(): JSONStreamingAPI 객체를 닫습니다.{#JSONStreamingAPIScopedAPI__close}
    {#JSONStreamingAPIScopedAPI__ol_yzk_qgn_hlb}

## 크기 제한 {#JSONStreamingAPIScopedAPI__section_qkj_sd5_hlb}

이 API를 통해 생성된 페이로드는 다음 크기 제한을 초과할 수 없습니다.  
* 첨부 파일: 200MB
* 문자열: 5MB
{#JSONStreamingAPIScopedAPI__ul_syy_lsw_3lb}

## 예제 {#JSONStreamingAPIScopedAPI__section_nzz_rd5_hlb}

이 예시에서는 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() {#ariaid-title2}

JSONStreamingAPI 객체를 닫습니다. JSON 객체를 빌드한 후 스트림을 닫으려면 이 메서드를 호출해야 합니다.
{#JSA-close__table_izv_lb5_hlb__entry__3}

| 이름 | 유형 | 설명 |
|-|-|-|
| 안 함 |   |   |
[표 1. 매개변수]

{#JSA-close__table_izv_lb5_hlb} {#JSA-close__table_jzv_lb5_hlb__entry__2}

| 유형 | 설명 |
|-|-|
| 무효 |   |
[표 2. 반환]

{#JSA-close__table_jzv_lb5_hlb}  
이 예시에서는 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() {#ariaid-title3}

예쁜 인쇄 JSON 서식을 끝냅니다.
이 메서드를 호출하기 전에 먼저 enablePrettyPrint()를 호출하여 특정 섹션에 JSON 서식을 추가해야 합니다.
{#JSA-disablePrettyPrint__table_ebl_hh2_1lb__entry__3}

| 이름 | 유형 | 설명 |
|-|-|-|
| 안 함 |   |   |
[표 3. 매개변수]

{#JSA-disablePrettyPrint__table_ebl_hh2_1lb} {#JSA-disablePrettyPrint__table_fbl_hh2_1lb__entry__2}

| 유형 | 설명 |
|-|-|
| JSONStreamingAPI | 페이로드를 구성하는 데 사용되는 스트리밍 JSON 객체입니다. |
[표 4. 반환]

{#JSA-disablePrettyPrint__table_fbl_hh2_1lb}  
이 예에서는 `주소` 개체에 예쁜 인쇄 서식을 추가합니다.

    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() {#ariaid-title4}

JSON 객체 또는 JSON 객체의 섹션에 예쁜 인쇄 서식을 추가합니다.
JSON 객체 섹션에서 예쁜 인쇄물 서식을 비활성화하려면 disablePrettyPrint() 메서드를 사용합니다.
{#JSA-enablePrettyPrint__table_h5h_gh2_1lb__entry__3}

| 이름 | 유형 | 설명 |
|-|-|-|
| 안 함 |   |   |
[표 5. 매개변수]

{#JSA-enablePrettyPrint__table_h5h_gh2_1lb} {#JSA-enablePrettyPrint__table_fbl_hh2_1lb__entry__2}

| 유형 | 설명 |
|-|-|
| JSONStreamingAPI | 페이로드를 구성하는 데 사용되는 스트리밍 JSON 객체입니다. |
[표 6. 반환]

{#JSA-enablePrettyPrint__table_fbl_hh2_1lb}  

    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() {#ariaid-title5}

상위 JSON 객체 내의 배열을 닫습니다.
먼저 startArray() 메서드를 호출하여 배열을 엽니다.
{#JSA-endArray__table_p1h_kf2_1lb__entry__3}

| 이름 | 유형 | 설명 |
|-|-|-|
| 안 함 |   |   |
[표 7. 매개변수]

{#JSA-endArray__table_p1h_kf2_1lb} {#JSA-endArray__table_q1h_kf2_1lb__entry__2}

| 유형 | 설명 |
|-|-|
| JSONStreamingAPI | 페이로드를 구성하는 데 사용되는 스트리밍 JSON 객체입니다. |
[표 8. 반환]

{#JSA-endArray__table_q1h_kf2_1lb}  
이 예시에서는 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() {#ariaid-title6}

상위 JSON 객체 내의 객체를 닫습니다.
먼저 startObject() 메서드를 호출하여 객체를 엽니다.
{#JSA-endObject__table_rzg_gf2_1lb__entry__3}

| 이름 | 유형 | 설명 |
|-|-|-|
| 안 함 |   |   |
[표 9. 매개변수]

{#JSA-endObject__table_rzg_gf2_1lb} {#JSA-endObject__table_q1h_kf2_1lb__entry__2}

| 유형 | 설명 |
|-|-|
| JSONStreamingAPI | 페이로드를 구성하는 데 사용되는 스트리밍 JSON 객체입니다. |
[표 10. 반환]

{#JSA-endObject__table_q1h_kf2_1lb}  
이 예시에서는 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() {#ariaid-title7}

JSON 페이로드가 포함된 스트리밍 첨부 파일 \[streaming_attachment\] 테이블에서 첨부 파일 기록의 sys_id 반환합니다.
이 메서드를 호출하기 전에 JSONStreamingBuilder 클래스에서 withAttachment() 메서드를 호출하여 JSON 페이로드를 첨부 파일로 저장해야 합니다. [JSONStreamingBuilder - 범위 지정됨](https://servicenow-prod.fluidtopics.net/J5RX6Hl0aXB0Z7QYyGFilQ#JSONStreamingBuilderScopedAPI "대량 데이터를 타사 API로 보내기 위한 REST 또는 SOAP 요청에 사용할 대형 스트리밍 JSON 페이로드를 빌드하는 데 사용되는 작성기 객체를 생성합니다. 페이로드를 비스트리밍 옵션에 대한 JSON 문자열로 생성할 수도 있습니다.") 문서를 참조하십시오.
{#JSA-getAttachmentId__table_j2q_p25_hlb__entry__3}

| 이름 | 유형 | 설명 |
|-|-|-|
| 안 함 |   |   |
[표 11. 매개변수]

{#JSA-getAttachmentId__table_j2q_p25_hlb} {#JSA-getAttachmentId__table_k2q_p25_hlb__entry__2}

| 유형 | 설명 |
|-|-|
| 문자열 | JSON 페이로드가 포함된 스트리밍 첨부 파일 \[streaming_attachment\] 테이블의 첨부 파일 기록 Sys_id입니다. |
[표 12. 반환]

{#JSA-getAttachmentId__table_k2q_p25_hlb}  
이 예시에서는 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() {#ariaid-title8}

JSON 객체를 문자열로 반환합니다.
JSON 객체를 문자열로 반환하려면 JSONStreamingBuilder 클래스에서 withAttachment() 메서드를 호출하지 마십시오. [JSONStreamingBuilder - 범위 지정됨](https://servicenow-prod.fluidtopics.net/J5RX6Hl0aXB0Z7QYyGFilQ#JSONStreamingBuilderScopedAPI "대량 데이터를 타사 API로 보내기 위한 REST 또는 SOAP 요청에 사용할 대형 스트리밍 JSON 페이로드를 빌드하는 데 사용되는 작성기 객체를 생성합니다. 페이로드를 비스트리밍 옵션에 대한 JSON 문자열로 생성할 수도 있습니다.") 문서를 참조하십시오.
{#JSA-getJSONString__table_bth_r25_hlb__entry__3}

| 이름 | 유형 | 설명 |
|-|-|-|
| 안 함 |   |   |
[표 13. 매개변수]

{#JSA-getJSONString__table_bth_r25_hlb} {#JSA-getJSONString__table_cth_r25_hlb__entry__2}

| 유형 | 설명 |
|-|-|
| 문자열 | JSONStreamingAPI를 사용하여 빌드된 JSON 객체를 포함합니다. |
[표 14. 반환]

{#JSA-getJSONString__table_cth_r25_hlb}  

    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() {#ariaid-title9}

상위 JSON 객체 내에서 배열을 엽니다.
endArray() 메서드를 포함하여 배열을 닫습니다.
{#JSA-startArray__table_ljl_3f2_1lb__entry__3}

| 이름 | 유형 | 설명 |
|-|-|-|
| 안 함 |   |   |
[표 15. 매개변수]

{#JSA-startArray__table_ljl_3f2_1lb} {#JSA-startArray__table_q1h_kf2_1lb__entry__2}

| 유형 | 설명 |
|-|-|
| JSONStreamingAPI | 페이로드를 구성하는 데 사용되는 스트리밍 JSON 객체입니다. |
[표 16. 반환]

{#JSA-startArray__table_q1h_kf2_1lb}  
이 예시에서는 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(String fieldName) {#ariaid-title10}

상위 JSON 객체 내에 배열을 작성합니다.
이 메서드를 startArray() 및 endArray() 메서드로 둘러싸서 배열을 열고 닫습니다.
{#JSA-startArrayField_S__table_fmw_wg2_1lb__entry__3}

| 이름 | 유형 | 설명 |
|-|-|-|
| fieldName | 문자열 | 배열의 이름입니다. |
[표 17. 매개변수]

{#JSA-startArrayField_S__table_fmw_wg2_1lb} {#JSA-startArrayField_S__table_q1h_kf2_1lb__entry__2}

| 유형 | 설명 |
|-|-|
| JSONStreamingAPI | 페이로드를 구성하는 데 사용되는 스트리밍 JSON 객체입니다. |
[표 18. 반환]

{#JSA-startArrayField_S__table_q1h_kf2_1lb}  

    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() {#ariaid-title11}

상위 JSON 객체 내에서 객체를 엽니다.
객체를 닫으려면 endObject() 메서드가 필요합니다.
{#JSA-startObject__table_fmc_2f2_1lb__entry__3}

| 이름 | 유형 | 설명 |
|-|-|-|
| 안 함 |   |   |
[표 19. 매개변수]

{#JSA-startObject__table_fmc_2f2_1lb} {#JSA-startObject__table_q1h_kf2_1lb__entry__2}

| 유형 | 설명 |
|-|-|
| JSONStreamingAPI | 페이로드를 구성하는 데 사용되는 스트리밍 JSON 객체입니다. |
[표 20. 반환]

{#JSA-startObject__table_q1h_kf2_1lb}  
이 예시에서는 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(부울 상태) {#ariaid-title12}

상위 JSON 객체에 부울 값을 추가합니다.
{#JSA-writeBoolean_B__table_abc_4f2_1lb__entry__3}

| 이름 | 유형 | 설명 |
|-|-|-|
| 상태 | 부울 | 상위 JSON 객체에 추가할 부울 값입니다. 유효한 값은 다음과 같습니다. * 예 * 아니오 {#JSA-writeBoolean_B__ul_js4_hzs_1mb} |
[표 21. 매개변수]

{#JSA-writeBoolean_B__table_abc_4f2_1lb} {#JSA-writeBoolean_B__table_q1h_kf2_1lb__entry__2}

| 유형 | 설명 |
|-|-|
| JSONStreamingAPI | 페이로드를 구성하는 데 사용되는 스트리밍 JSON 객체입니다. |
[표 22. 반환]

{#JSA-writeBoolean_B__table_q1h_kf2_1lb}  

    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, 부울 값) {#ariaid-title13}

상위 JSON 객체에 부울 필드와 값을 추가합니다.
{#JSA-writeBooleanField_S_B__table_qtm_dh2_1lb__entry__3}

| 이름 | 유형 | 설명 |
|-|-|-|
| fieldName | 문자열 | 상위 JSON 객체에 추가할 필드의 이름입니다. |
| 값 | 부울 | 상위 JSON 객체에 추가할 부울 값입니다. 유효한 값은 다음과 같습니다. * 예 * 아니오 {#JSA-writeBooleanField_S_B__ul_js4_hzs_1mb} |
[표 23. 매개변수]

{#JSA-writeBooleanField_S_B__table_qtm_dh2_1lb} {#JSA-writeBooleanField_S_B__table_q1h_kf2_1lb__entry__2}

| 유형 | 설명 |
|-|-|
| JSONStreamingAPI | 페이로드를 구성하는 데 사용되는 스트리밍 JSON 객체입니다. |
[표 24. 반환]

{#JSA-writeBooleanField_S_B__table_q1h_kf2_1lb}  

    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(문자열 이름) {#ariaid-title14}

상위 JSON 객체에 필드 이름을 추가합니다.
{#JSA-writeFieldName_S__table_bsf_mf2_1lb__entry__3}

| 이름 | 유형 | 설명 |
|-|-|-|
| 이름 | 문자열 | 상위 JSON 객체에 추가할 필드 이름입니다. |
[표 25. 매개변수]

{#JSA-writeFieldName_S__table_bsf_mf2_1lb} {#JSA-writeFieldName_S__table_q1h_kf2_1lb__entry__2}

| 유형 | 설명 |
|-|-|
| JSONStreamingAPI | 페이로드를 구성하는 데 사용되는 스트리밍 JSON 객체입니다. |
[표 26. 반환]

{#JSA-writeFieldName_S__table_q1h_kf2_1lb}  
이 예시에서는 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() {#ariaid-title15}

상위 JSON 객체에 null 값을 추가합니다.
{#JSA-writeNull__table_bdp_wf2_1lb__entry__3}

| 이름 | 유형 | 설명 |
|-|-|-|
| 안 함 |   |   |
[표 27. 매개변수]

{#JSA-writeNull__table_bdp_wf2_1lb} {#JSA-writeNull__table_q1h_kf2_1lb__entry__2}

| 유형 | 설명 |
|-|-|
| JSONStreamingAPI | 페이로드를 구성하는 데 사용되는 스트리밍 JSON 객체입니다. |
[표 28. 반환]

{#JSA-writeNull__table_q1h_kf2_1lb}  

    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(String fieldName) {#ariaid-title16}

null 값이 있는 필드를 상위 JSON 객체에 추가합니다.
{#JSA-writeNullField_S__table_ifs_nh2_1lb__entry__3}

| 이름 | 유형 | 설명 |
|-|-|-|
| fieldName | 문자열 | null 필드의 이름입니다. |
[표 29. 매개변수]

{#JSA-writeNullField_S__table_ifs_nh2_1lb} {#JSA-writeNullField_S__table_q1h_kf2_1lb__entry__2}

| 유형 | 설명 |
|-|-|
| JSONStreamingAPI | 페이로드를 구성하는 데 사용되는 스트리밍 JSON 객체입니다. |
[표 30. 반환]

{#JSA-writeNullField_S__table_q1h_kf2_1lb}  

    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) {#ariaid-title17}

상위 JSON 객체에 숫자 필드와 값을 추가합니다.
{#JSA-writeNumberField_S_S__table_bqd_rf2_1lb__entry__3}

| 이름 | 유형 | 설명 |
|-|-|-|
| fieldName | 문자열 | 숫자 필드의 이름입니다. |
| encodedValue | 문자열 | 숫자 필드의 값입니다. |
[표 31. 매개변수]

{#JSA-writeNumberField_S_S__table_bqd_rf2_1lb} {#JSA-writeNumberField_S_S__table_q1h_kf2_1lb__entry__2}

| 유형 | 설명 |
|-|-|
| JSONStreamingAPI | 페이로드를 구성하는 데 사용되는 스트리밍 JSON 객체입니다. |
[표 32. 반환]

{#JSA-writeNumberField_S_S__table_q1h_kf2_1lb}  
이 예시에서는 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(문자열 텍스트) {#ariaid-title18}

상위 JSON 객체에 원시 값을 추가합니다.
{#JSA-writeRaw_S__table_pkv_5f2_1lb__entry__3}

| 이름 | 유형 | 설명 |
|-|-|-|
| 텍스트 | 문자열 | 상위 JSON 객체에 추가할 원시 텍스트입니다. |
[표 33. 매개변수]

{#JSA-writeRaw_S__table_pkv_5f2_1lb} {#JSA-writeRaw_S__table_q1h_kf2_1lb__entry__2}

| 유형 | 설명 |
|-|-|
| JSONStreamingAPI | 페이로드를 구성하는 데 사용되는 스트리밍 JSON 객체입니다. |
[표 34. 반환]

{#JSA-writeRaw_S__table_q1h_kf2_1lb}  

    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(문자열 텍스트) {#ariaid-title19}

상위 JSON 객체에 문자열 값을 추가합니다.
{#JSA-writeString_S__table_arf_tf2_1lb__entry__3}

| 이름 | 유형 | 설명 |
|-|-|-|
| 텍스트 | 문자열 | 상위 JSON 객체에 추가할 문자열 값입니다. |
[표 35. 매개변수]

{#JSA-writeString_S__table_arf_tf2_1lb} {#JSA-writeString_S__table_q1h_kf2_1lb__entry__2}

| 유형 | 설명 |
|-|-|
| JSONStreamingAPI | 페이로드를 구성하는 데 사용되는 스트리밍 JSON 객체입니다. |
[표 36. 반환]

{#JSA-writeString_S__table_q1h_kf2_1lb}  
이 예시에서는 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(String fieldName, String value) {#ariaid-title20}

상위 JSON 객체에 문자열 필드와 값을 추가합니다.
{#JSA-writeStringField_S_S__table_qtm_dh2_1lb__entry__3}

| 이름 | 유형 | 설명 |
|-|-|-|
| fieldName | 문자열 | 상위 JSON 객체에 추가할 필드의 이름입니다. |
| 값 | 문자열 | 필드의 값입니다. |
[표 37. 매개변수]

{#JSA-writeStringField_S_S__table_qtm_dh2_1lb} {#JSA-writeStringField_S_S__table_q1h_kf2_1lb__entry__2}

| 유형 | 설명 |
|-|-|
| JSONStreamingAPI | 페이로드를 구성하는 데 사용되는 스트리밍 JSON 객체입니다. |
[표 38. 반환]

{#JSA-writeStringField_S_S__table_q1h_kf2_1lb}  
이 예시에서는 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();
    }


