JSON - グローバル

  • リリースバージョン: Yokohama
  • 更新日 2025年01月30日
  • 所要時間:7分
  • 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 - decode(文字列 str)

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

    出力:ファーストネームはジョージです

    スコープ付きスクリプトで使用する。

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

    出力:ファーストネームはジョージです

    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(String str)

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

    出力:ファーストネームはジョージです

    JSON - stringify(オブジェクト:jsonObject)

    JSON オブジェクトから文字列を作成します。

    JSON.stringify() メソッドは、数値、文字列、および Java ネイティブオブジェクトのみを文字列に変換できます。ユーザー定義オブジェクトが toJSON() メソッドを提供しない限り、ユーザー定義オブジェクトを文字列に変換することはできません。current.sys_id() の呼び出しは、toJSON() メソッドを持たない GlideElement オブジェクトを返すため、stringify の戻り値は空です: "{}"。JSON 静的メソッドの代わりに、JavaScript ES5 ネイティブ JSON オブジェクトが使用されます。スクリプトに以前の動作が必要な場合は、 encode() メソッドと decode() メソッドを使用します。

    JSON.stringify() は、次のガイドラインを使用して値を JSON 表記に変換します。
    • 値に toJSON() メソッドがある場合、シリアル化されるデータの定義を担当します。
    • ブーリアン、数値、および文字列オブジェクトは、文字列化中に対応するプリミティブ値に変換されます。従来の変換セマンティクスに従って。
    • 変換中に関数、未定義、またはシンボルが見つかった場合は、省略されるか (オブジェクト内で見つかった場合)、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);