0 フォロワー · 35 投稿

JSON(JavaScript Object Notation)は、軽量のデータ交換フォーマットです。 人が簡単に読み書きできます。

記事 Toshihiko Minamoto · 2021年6月15日 11m read

MonCaché — InterSystems Caché での MongoDB API 実装

免責事項:この記事は筆者の私見を反映したものであり、InterSystemsの公式見解とは関係ありません。

構想

プロジェクトの構想は、クライアント側のコードを変更せずに MongoDB の代わりに InterSystems Caché を使用できるように、ドキュメントを検索、保存、更新、および削除するための基本的な MongoDB(v2.4.9) API 機能を実装するところにあります。

動機

おそらく、MongoDB に基づくインターフェースを使って、データストレージに InterSystems Caché を使用すると、パフォーマンスが向上するのではないか。 このプロジェクトは、学士号を取得するための研究プロジェクトとして始まりました。

ダメなわけないよね?! ¯\(ツ)

制限

この研究プロジェクトを進める過程で、いくつかの簡略化が行われました。

  • プリミティブ型のデータのみを使用する: nullbooleannumberstringarrayobjectObjectId
  • クライアント側のコードは MongoDB ドライバーを使って MongoDB と連携する。
  • クライアント側のコードでは、MongoDB Node.
0
0 171
記事 Mihoko Iijima · 2021年3月9日 1m read

これは InterSystems FAQ サイトの記事です。

ダイナミックオブジェクトから JSON 文字列を生成するときに使用する %ToJSON() の引数にストリームオブジェクトを指定することでエラーを回避できます。

コード例は以下の通りです。

USER>set temp=##class(%Stream.TmpCharacter).%New()

USER>set jsonobj={}

USER>set jsonobj.pro1=["a","b","c","d"]

USER>set jsonobj.pro2=["あ","い","う","え"]

USER>do jsonobj.%ToJSON(temp)

USER>write temp.Size
51
USER>write temp.Read()
{"pro1":["a","b","c","d"],"pro2":["あ","い","う","え"]}

詳細はドキュメントもご参照下さい。

【IRIS】大きいダイナミック・エンティティからストリームへのシリアル化

大きいダイナミック・エンティティからストリームへのシリアル化

3
0 597
記事 Megumi Kakechi · 2021年2月18日 3m read

jQuery($.getJSON と $.ajax)を使用した InterSystems IRIS データのJSON形式での取得方法をご紹介します。

以下にサンプルをご用意しました。

https://github.com/Intersystems-jp/REST_JSON_sample


サンプルには、次の内容が含まれます。

・REST + JSON
・REST + CORS

※それぞれ、$.getJSON と $.ajax で取得する方法を記載しています。

※サーバ側ではSelect文の実行結果をJSON_OBJECT関数を使用しJSON文字列で出力しています。
 関数については以下のドキュメントをご覧ください。
 JSON_OBJECT関数


使用手順は以下になります。

1. USERネームスペースに json.xml をインポート・コンパイル
 

2. テスト用データの作成(ターミナルで以下のコマンドを実行する)

    USER>do ##class(Sample.Person).Populate(200)


3. 初期設定(REST用)

   管理ポータル > セキュリティ管理 > ウェブ・アプリケーション

   新しいウェブ・アプリケーションを作成ボタンを押す

   名前 /csp/user/rest
   ネームスペース    USER
   ディスパッチ・クラス REST.Person

   保存ボタンを押す

4.

0
0 643
記事 Toshihiko Minamoto · 2020年12月21日 9m read

$LIST のフォーマットと%DynamicArray、%DynamicObject クラス

IRIS には、様々なデータ値を含むシーケンスを作成する方法がいくつかあります (以前は Cache にもありました)。  長年に渡り使用されているデータシーケンスの 1 つに $LIST の文字列があります。  より最近のデータシーケンスには %DynamicArray クラスと %DynamicObject クラスがあり、両者ともに JSON の文字列表現に対応する IRIS サポートの一部となっています。  これら 2 つのシーケンスにはそれぞれ非常に異なるトレードオフがあります。

$LIST の文字列形式

$LIST 形式は、かつてメモリアドレスのスペースが小さいだけでなく、ディスクドライブも小さく、読み取り速度が遅かった時代に考案されました。  $LIST の形式は、複数の異なるデータ型で構成されるシーケンスをバイト数を可能な限り抑えながら 8 ビットの一般的な文字列にパッキングするためにデザインされました。

$LIST のシーケンスは、ObjectScript の $LISTBUILD 関数を使って作成します。 

$LIST の文字列の最も重要な機能は、データを 8 ビットの値で構成される最小のシーケンスにぎっしりパッキングできるという点です。

0
0 1031
記事 Toshihiko Minamoto · 2020年10月22日 7m read

InterSystems IRIS 2019.1は公開されてからしばらく経ちますが、気づかれていない可能性のある、JSONの処理の強化機能について説明したいと思います。 最新のアプリケーションを構築する際、特にRESTエンドポイントを操作する際は、JSONをシリアル化形式として扱うことが重要です。

0
0 664