JSON - 전역

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

    이 API에는 동적 및 정적 메서드가 있습니다. JSON 개체를 만들어 동적 메서드에 액세스합니다. 범위가 지정된 애플리케이션에서 동적 메서드를 사용하려면 생성자를 호출할 때 전역 접두사를 추가합니다. 정적 JSON 개체를 사용하여 정적 메서드에 액세스합니다.

    JSON 정적 메서드 대신 JavaScript ES5 네이티브 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 - JSON()

    JSON 클래스의 인스턴스를 작성합니다.

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

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

    JSON - 디코딩(문자열 문자열)

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

    주:
    이 클래스는 더 이상 사용되지 않습니다. 대신 JavaScript JSON 개체를 사용합니다.
    표 2. 매개변수
    이름 유형 설명
    STR 문자열 JSON 형식의 문자열입니다.
    표 3. 반환
    유형 설명
    객체 지정된 문자열에서 만든 객체입니다.
    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 - encode(객체 jsonObject)

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

    주:
    이 클래스는 더 이상 사용되지 않습니다. 대신 JavaScript JSON 개체를 사용합니다.
    표 4. 매개변수
    이름 유형 설명
    json객체 객체 문자열로 변환할 JSON 객체입니다.
    표 5. 반환
    유형 설명
    문자열 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 - parse(문자열 문자열)

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

    JSON 정적 메서드 대신 JavaScript ES5 네이티브 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에 대한 반환 값은 비어 있습니다. "{}". JSON 정적 메서드 대신 JavaScript ES5 네이티브 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로 간주됩니다.
    • 다른 모든 개체 인스턴스의 경우 열거 가능한 속성만 serialize됩니다.
    표 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);