JSON - グローバル
JSON スクリプトインクルードは、文字列から JSON オブジェクトを作成し、JSON オブジェクトを文字列に変換するメソッドを提供します。
この API には、動的メソッドと静的メソッドがあります。動的メソッドにアクセスするには、JSON オブジェクトを作成します。スコープ対象のアプリケーションで動的メソッドを使用するには、コンストラクターを呼び出すときにグローバルなプリフィックスを追加します。静的メソッドにアクセスするには、静的な JSON オブジェクトを使用します。
静的な JSON メソッドの代わりに、JavaScript ES5 ネイティブの JSON オブジェクトを使用します。スクリプトに古い動作が必要な場合は、encode() および decode() メソッドを使用します。
// 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 オブジェクトを使用してください。
// 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 オブジェクトを使用してください。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
JSON - decode(文字列 str)
JSON 形式の文字列からオブジェクトタイプまたはプリミティブタイプを作成します。
| 名前 | タイプ | 説明 |
|---|---|---|
| str | 文字列 | JSON 形式の文字列。 |
| タイプ | 説明 |
|---|---|
| オブジェクト | 指定した文字列から作成されたオブジェクト。 |
var str = '{"name":"George","lastname":"Washington"}';
var parser = new JSON();
var obj = parser.decode(str);
gs.info('The first name is ' + obj.name);
出力:The first name is 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);
出力:The first name is George
JSON - encode(オブジェクト jsonObject)
JSON オブジェクトから文字列を作成します。
| 名前 | タイプ | 説明 |
|---|---|---|
| jsonObject | オブジェクト | 文字列に変換される JSON オブジェクト。 |
| タイプ | 説明 |
|---|---|
| 文字列 | JSON 形式の文字列。 |
var obj = {"name":"George","lastname":"Washington"};
var parser = new JSON();
var str = parser.encode(obj);
gs.info('The object ' + str);
出力:The object {"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(文字列 str)
JSON 形式の文字列からオブジェクトタイプまたはプリミティブタイプを作成します。
静的な JSON メソッドの代わりに、JavaScript ES5 ネイティブの JSON オブジェクトを使用します。スクリプトに古い動作が必要な場合は、encode() および decode() メソッドを使用します。
| 名前 | タイプ | 説明 |
|---|---|---|
| str | 文字列 | JSON 形式の文字列。 |
| タイプ | 説明 |
|---|---|
| オブジェクト | 指定した文字列から作成されたオブジェクト。 |
var str = '{"name":"George","lastname":"Washington"}';
var obj = JSON.parse(str);
gs.info('The first name is ' + obj.name);
出力:The first name is George
JSON - stringify(オブジェクト jsonObject)
JSON オブジェクトから文字列を作成します。
JSON.stringify() メソッドは、数値、文字列、および Java ネイティブのオブジェクトのみを文字列に変換できます。オブジェクトが toJSON() メソッドを提供していない場合、ユーザー定義のオブジェクトを文字列に変換することはできません。current.sys_id() の呼び出しは toJSON() メソッドを持たない GlideElement オブジェクトを返すため、stringify の戻り値は「{}」になります。静的な JSON メソッドの代わりに、JavaScript ES5 ネイティブの JSON オブジェクトを使用します。スクリプトに古い動作が必要な場合は、encode() および decode() メソッドを使用します。
- 値に toJSON() メソッドがある場合は、シリアル化されるデータを定義します。
- ブーリアン、数値、および文字列のオブジェクトは、文字列への変換中に、対応するプリミティブ値に変換されます。その際は従来の変換セマンティックに従います。
- 変換中に関数、undefined、または記号が見つかった場合は、省略されるか (オブジェクト内で検出された場合)、null に制限されます (配列内で検出された場合)。JSON.stringify() は、
JSON.stringify(function(){})やJSON.stringify(undefined)などの「純粋な」値を渡す場合にも undefined を返します。 - シンボルキーのプロパティはすべて無視されます。replacer() 関数を使用した場合も同様です。
- Date のインスタンスは、文字列 (date.toISOString() と同じ) を返すことによって toJSON() 関数を実装するため、文字列として扱われます。
- Infinity と NaN の数値および null は、すべて null とみなされます。
- 他のすべてのオブジェクトインスタンスでは、列挙可能なプロパティのみがシリアル化されます。
| 名前 | タイプ | 説明 |
|---|---|---|
| jsonObject | オブジェクト | 文字列に変換する JSON オブジェクト。 |
| タイプ | 説明 |
|---|---|
| 文字列 | JSON 形式の文字列。 |
var obj = {"name":"George","lastname":"Washington"};
var str = JSON.stringify(obj);
gs.info('The object ' + str);
出力:The object {"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);