バージョン 2016.2 JSON 機能の変更点について
インターシステムズは JSON 機能について再検討した結果、いくつかの変更を加えることが最適であるとの結論に至りました。本文書では変更点の詳細と、既にバージョン2016.1でJSON機能を使用したコードを作成された方向けの指針をご案内します。
1) クラス名の変更
%Object および %Array という名前は一般的すぎるため、クラス名を変更します。%Object は%DynamicObject に、%Array は%DynamicArray に変わります。オブジェクトの初期化シンタックス(波括弧および角括弧)を使用している場合はこの変更の影響を受けません。例えば次のようにクラス名を直接使用している場合、
次のように新しい名前を使用してください:
2) システムメソッドの廃止
バージョン 2016.1で導入されたシステムメソッドは完全に廃止されます。代わりに、先頭の ”%” (パーセント)に続く英大文字で始まる通常のメソッドに置き換わります。例えば、$fromJSON はメソッド%FromJSONになります。
上記サンプルコードにあるシステムメソッドはバージョン 2016.2では次のように書き換えてください。
3) オブジェクト初期化の変更
オブジェクトの初期化はJSONサポートに加わった強力な追加機能です。これを使用されたお客様と検証した結果、変更する必要がある2つの箇所が見つかりました。サンプルを用いてこのダイナミック・オブジェクトの初期化の変更点についてご説明します。
最初の変更は、すべての式値を括弧で囲む必要がある点です。この部分でコード作成者の意図が曖昧になるいくつかのケースが見つかりました。これを回避するため、キー “version” および “sum” の値を括弧で囲む必要があります。
2つめの変更は、リテラル値をCaché ObjectScript のシンタックスではなくJSONシンタックスとして記述する必要がある点です。上記サンプルでは文字列リテラルをCaché ObjectScript シンタックスでエスケープしています。新しいバージョンでは二重引用符はバックスラッシュでエスケープする必要があります。Caché ObjectScript でエスケープしたい場合は、文字列を括弧で囲む必要があります。
上記サンプルをバージョン 2016.2向けに変更すると次のようになります。
次のように括弧で囲って式をCaché ObjectScript で評価させることもできます。
4) $composeの廃止
メソッド $compose はバージョン2016.2で廃止されます。弊社では登録オブジェクトとダイナミック・オブジェクトを相互に変換する機能はJSON機能において非常に重要であると認識しております。お客様のニーズに合致するAPIを提供し、より簡単に使用できるように $compose メソッドを再設計する予定です。
5) SQL の変更
JSON_TABLE 関数はバージョン2016.2で廃止されます。これはドキュメント・データ・モデルの廃止に伴うものです。SQLでのその他の関数、JSON_OBJECT およびJSON_ARRAYに変更はありません。
ご不明な点・ご質問等ございましたら、 インターシステムズジャパン・カスタマサポートセンターまでお知らせください。