JSON - 전역

  • 릴리스 버전: Washingtondc
  • 업데이트 날짜 2024년 02월 01일
  • 읽기6분
  • JSON API는 문자열에서 JSON 객체를 생성하고 JSON 객체를 문자열로 변환하는 메서드를 제공합니다.

    이 API에는 동적 및 정적 메서드가 있습니다. JSON 객체를 생성하여 동적 메서드에 액세스합니다. 범위가 지정된 응용 프로그램에서 동적 메서드를 사용하려면 생성자를 호출할 때 전역 접두사를 추가합니다. 정적 JSON 개체를 사용하여 정적 메서드에 액세스합니다.

    JavaScript ES5 네이티브 JSON 객체는 JSON 정적 메서드 대신 사용됩니다. 스크립트에 이전 동작이 필요한 경우 encode() 및 decode() 메서드를 사용합니다.

    이 예제에서는 JSON 객체를 만듭니다.
    // obj is a JSON formatted object
    var parser = new JSON(); // encode() and decode() are dynamic methods.
    var str = parser.encode(obj);

    encode() 및 decode() 메서드는 더 이상 사용되지 않습니다. 대신 JavaScript JSON 객체를 사용합니다.

    이 예제에서는 범위가 지정된 스크립트에서 JSON 객체를 만듭니다.
    // obj is a JSON formatted object
    var parser = new global.JSON();
    var str = parser.encode(obj);
    
    이 예제에서는 정적 메서드를 사용합니다.
    // obj is a JSON formatted object
    var str =  JSON.stringify(obj);
    // str is a string containing content to be turned into a JSON formatted object
    var obj = JSON.parse(str);
    

    JSON - decode(String str)

    JSON 형식 문자열에서 객체 또는 기본 형식을 작성합니다.

    주:
    이 클래스는 더 이상 사용되지 않습니다. 대신 JavaScript JSON 객체를 사용합니다.
    표 1. 매개변수
    이름 유형 설명
    STR 문자열 JSON 형식의 문자열입니다.
    표 2. 반환
    유형 설명
    객체 지정된 문자열에서 만든 개체입니다.
    var str = '{"name":"George","lastname":"Washington"}';
    var parser = new JSON();
    var obj = parser.decode(str);
    gs.info('The first name is '  + obj.name);

    출력: 이름은 George입니다.

    범위가 지정된 스크립트에서 사용합니다.

    var str = '{"name":"George","lastname":"Washington"}';
    var parser = new global.JSON();
    var obj = parser.decode(str);
    gs.info('The first name is '  + obj.name);

    출력: 이름은 George입니다.

    JSON - 인코딩(jsonObject 객체)

    JSON 객체에서 문자열을 작성합니다.

    주:
    이 클래스는 더 이상 사용되지 않습니다. 대신 JavaScript JSON 객체를 사용합니다.
    표 3. 매개변수
    이름 유형 설명
    json객체 객체 문자열로 변환할 JSON 객체입니다.
    표 4. 반환
    유형 설명
    문자열 JSON 형식의 문자열입니다.
    var obj = {"name":"George","lastname":"Washington"};
    var parser = new JSON();
    var str = parser.encode(obj);
    gs.info('The object '  + str);

    출력: 객체 {"lastname":"Washington","name":"George"}

    범위가 지정된 스크립트에서 사용합니다.

    var obj = {"name":"George","lastname":"Washington"};
    var parser = new global.JSON();
    var str = parser.encode(obj);
    gs.info('The object '  + str);

    JSON - JSON()

    JSON 클래스의 인스턴스를 만듭니다.

    이 클래스는 더 이상 사용되지 않습니다. 대신 JavaScript JSON 객체를 사용합니다.

    표 5. 매개변수
    이름 유형 설명
    없음

    JSON - parse(str 문자열)

    JSON 형식 문자열에서 객체 또는 기본 형식을 작성합니다.

    JavaScript ES5 네이티브 JSON 객체는 JSON 정적 메서드 대신 사용됩니다. 스크립트에 이전 동작이 필요한 경우 encode() 및 decode() 메서드를 사용합니다.

    표 6. 매개변수
    이름 유형 설명
    STR 문자열 JSON 형식의 문자열입니다.
    표 7. 반환
    유형 설명
    객체 지정된 문자열에서 만든 개체입니다.
    var str = '{"name":"George","lastname":"Washington"}';
    var obj = JSON.parse(str);
    gs.info('The first name is '  + obj.name);

    출력: 이름은 George입니다.

    JSON - stringify(jsonObject 객체)

    JSON 객체에서 문자열을 작성합니다.

    JSON.stringify() 메서드는 숫자, 문자열 및 Java 기본 객체만 문자열로 변환할 수 있습니다. 사용자 정의 객체가 toJSON() 메서드를 제공하지 않는 한 해당 객체를 문자열로 변환할 수 없습니다. current.sys_id()를 호출하면 toJSON() 메서드가 없는 GlideElement 객체가 반환되므로 stringify의 반환 값은 비어 있습니다. "{}". JavaScript ES5 네이티브 JSON 객체는 JSON 정적 메서드 대신 사용됩니다. 스크립트에 이전 동작이 필요한 경우 encode() 및 decode() 메서드를 사용합니다.

    JSON.stringify() 는 다음 지침에 따라 값을 JSON 표기법으로 변환합니다.
    • 값에 toJSON() 메서드가 있는 경우 직렬화된 데이터를 정의해야 합니다.
    • Boolean, number 및 string 객체는 문자열화 중에 해당 기본 값으로 변환됩니다. 전통적인 변환 의미론에 따라.
    • 변환 중에 정의되지 않은 함수 또는 기호가 발견되면 생략되거나(객체에서 발견될 때) null로 검열됩니다(배열에서 발견될 때). JSON.stringify()JSON.stringify(function(){}) 또는 JSON.stringify(undefined)와 같은 "순수한" 값을 전달할 때도 undefined를 반환합니다.
    • replacer() 함수를 사용하는 경우에도 모든 기호 키 속성은 무시됩니다.
    • Date의 인스턴스는 문자열(date.toISOString()과 동일)을 반환하여 toJSON() 함수를 구현하므로 문자열로 처리됩니다.
    • 숫자 Infinity와 NaN 및 값 null은 모두 null로 간주됩니다.
    • 다른 모든 개체 인스턴스의 경우 해당 열거 가능한 속성만 직렬화됩니다.
    표 8. 매개변수
    이름 유형 설명
    json객체 객체 문자열로 변환할 JSON 객체입니다.
    표 9. 반환
    유형 설명
    문자열 JSON 형식의 문자열입니다.
    var obj = {"name":"George","lastname":"Washington"};
    var str =  JSON.stringify(obj);
    gs.info('The object '  + str);
    

    출력: {"name":"George","lastname":"Washington"} 개체

    replacer() 함수를 정의하고 stringify() 호출에서 사용할 수도 있습니다. 이 함수는 GlideElement.toString() 메서드를 활용하여 GlideElement 객체의 문자열 표현을 제공합니다.

    function replacer(name, val) {
       // convert GlideElement to string
       if ( val && val.constructor === GlideElement ) {
           return val.toString();
       } else {
           return val; // return as is
       }
    };
    
    var s = global.JSON.stringify(json_obj, replacer);
    gs.info("json="+s);