オープンソースWebDBのプリザンター(pleasanter)ブログ

オープンソースのWebDBのプリザンター(pleasanter)のブログとサービス情報サイトです

株式会社リーデックスのオープンソースWebDB「プリザンター」ブログです。

13日の金曜日、プリザンターで利用されている「ジェイソン(JSON)」をまとめてみる

今日は、13日の金曜日です。そう、ジェイソンが襲ってきます・・・

ジェイソンは静かに、しかし突然襲ってきます。今回は、プリザンターのマスコット「はやと」にターゲットを絞ったようです。。。

f:id:h-ogawa-reedex-co-jp:20191209214612p:plain

 

にげろ、にげるんだ「はやと!」

 

f:id:h-ogawa-reedex-co-jp:20191209214444j:plain

 

ぎゃー!!!!!!!

 

 

・・・・・・・

 

 

こんにちは。
リーデックス小川です。

ということで、今日は2019年12月13日、プリザンターのアドベントカレンダーに登録しました。せっかくですので、記念に特別な何かを、と思っていたのですが、ちょうど13日の金曜日でしたので、いつもと違う前振りにしてみました(笑)。

qiita.com

もう少しだけ、深掘りしてみます。日本ではジェイソンでおなじみですが、米国ではこの日が怖い人は1,700万人から2,100万人もいて、「13日金曜日恐怖症」という病名があるようです。13日も金曜日も別々に縁起が悪い日、と言われていたみたいで、金曜日は「キリスト教起源説」「美神フレイヤ起源説」、13日は「キリスト教の凶数」など言われているようです。詳しくは下記サイトでご覧ください。

13日の金曜日はなぜ不吉なの? | ギズモード・ジャパン

 

Qiitaのアドベントカレンダー経由で本ブログをご覧になった方は、初めての方がいらっしゃるかと思いますので、簡単に自己紹介をさせていただきます。

株式会社リーデックスで働いている小川と申します。リーデックスはソフトウェア開発を行っている会社です。プリザンターとの出会いは偶然でした。Webデータベースでいいのないかなーと思い、ぐぐっていたところ、たまたま発見(失礼)したプリザンターに一目ぼれをし、すぐに4社目の公式パートナーとなりました。詳細は下記にも記事がありますので、お時間がある方はご覧ください。 

pleasanter.hatenablog.jp

 

さて、壮大な前振りが終わったところで(笑)、今回は13日の金曜日にということもありますので、ジェイソン(JSON)ネタを書いてみたいと思います。プリザンターで利用されているJSONやJSONファイルについてまとめてみました。

 

こんな人におすすめ!

  • JSONが何か知らないので、概要をわかっておきたい方
  • プリザンターはどんな設定ファイルがあるかが知りたい方
  • APIでJSONがどのように利用されているかを知りたい方

 

JSONとは?

それでは、まずはじめに「JSON」ってなに?というところから始めてみたいと思います。知っている方は、次の見出し「プリザンターではこんなところで利用されています」まで飛ばして頂いた構いません。

Wikipediaによると「JavaScript Object Notation(JSON、ジェイソン)は軽量なデータ記述言語の1つである。」とのことです。これだけだとよくわかりませんね。

データを扱うときには、「誰でも同じように書ける、読める」ことと「機械が正しく判別できる」ことが必要になります。
JSONは上記のようなルールを守るように決められたデータ形式(フォーマット)の一つです。
もう少しなじみのあるものだと、CSV形式があります。それぞれの文字がカンマで区切られたファイルですね。また、Webサイトを表示するHTMLなどもデータ形式の一つです。
JSONは下記のような書き方をします。

{"name": "John Smith", "age": 33}

中かっこ({})でくくり、キーの値とそれに対応する値を設定します。今回の例だと、キーの値"name"に"John Smith"が設定されていますね。また、"age"に33が設定されています。これらをプログラムで読み込み、画面に表示したり、データベースに登録したりするわけです。

これ以上こまかい説明は割愛しますが、詳しく知りたい方はWikipediaなどで調べてみてください。汎用的なフォーマットですので、情報は多いと思います。

 

プリザンターではこんなところで利用されています。

では、実際にプリザンターではどんなところに利用されているのでしょうか?具体的には下記のようなところで利用されています。

  • さまざまな設定ファイル
  • エクスポートのデータ
  • APIのリクエスト / レスポンスデータ

JSONは比較的人間にも読みやすい形式ですので、設定ファイルに利用されていることがしばしばあります。また、一般的なプログラム言語でも簡単に扱うことができるので、データのやり取りに利用されることも多いようです。特にJavaScriptでデータのやり取りを行う場合は、JSONを利用することが多いようですね(そもそも「JavaScript Object Notation」ですからね)。

 

さまざまな設定ファイル

まず初めに、設定ファイルのJSONについてみていきましょう。プリザンターは設定ファイルがJSONで書かれています。実際にどんな設定ファイルがあるかというと、公式サイトのマニュアルにもありますが、下記のようなものがあります。 

f:id:h-ogawa-reedex-co-jp:20191209205609p:plain

 

プリザンターは、クラウドサービス「pleasaner.net」版とサーバにインストールして利用するオンプレミス版がありますが、上記は後者で利用することができます。上記ファイルは

インストールしたフォルダ\App_Data\Parameters\XXXXX.json

にありますので、オンプレミス版を利用している方はテキストエディタなどで見てみてください。今回は以前も紹介しましたが、招待メールを送信するために利用する「Registration.json」を見てみましょう。

{
    "Enabled": true,
    "PrivilegedUserOnly": false,
    "ApprovalReauestTo": "test@hogehoge.com"
}

それぞれのキー値と対応する値の意味については下記記事を参考してください。先ほど書いた通り、なんとなく意味が分かるようになっています。

pleasanter.hatenablog.jp

 

エクスポートデータでJSON形式で出力を行ってみる。

では次に、エクスポートデータでJSON形式で出力を行ってみましょう。プリザンターのようなデータベースからデータをエクスポートする場合、一般的にはCSV形式やEXCEL形式が多いかと思います。プリザンターでは、エクスポートするデータ形式としてJSONを利用することが可能です。実際に試してみましょう。

画面右上「管理」→「テーブル管理」→タブ「エクスポート」→新規作成ボタンをクリックします。

f:id:h-ogawa-reedex-co-jp:20191209211151p:plain

 

名称に「テスト」と入力、エクスポートの種類は「Json」を選択します。画面下のボタン「追加」ボタンをクリック後、元の画面で「更新」ボタンをクリックします。

f:id:h-ogawa-reedex-co-jp:20191209211417p:plain

 

それでは、実際にデータをエクスポートしてみましょう。一覧画面下部にある「エクスポート」ボタンをクリックすると先ほど作成した「テスト」が選択できるようになっています。

f:id:h-ogawa-reedex-co-jp:20191209211759p:plain

 

書式は「テスト」を選択し、「エクスポート」ボタンをクリックします。すると、JSON形式のファイルがダウンロードされます。

f:id:h-ogawa-reedex-co-jp:20191209212056p:plain

ダウンロードされたファイルをテキストエディタなどで開くと、上記のようなJSON形式のデータが表示されたかと思います。CSVファイルと違い、意味が少しわかりやすいと思いますので、目視でもわかりやすいですね。

 

APIのリクエスト / レスポンスデータ例

さて、最後にAPIのリクエスト、レスポンスデータの例です。プリザンターでは、APIが実装されています。APIとは、外部からデータを取得する仕組みのことです。詳細は割愛させていただきますが、JSON同様、情報は多くありますので、Googleなどで検索していただければと思います。下記のようなサイトが参考になるかもしれません。

www.sejuku.net

 

さて、以前もすでにAPIについてはお伝えしていますので、そちらの記事を参考に記載していきたいと思います。 

pleasanter.hatenablog.jp

 

プログラムの詳細は上記記事に譲るとして、実際にどんな感じでJSONが利用されているかを見てみましょう。

f:id:h-ogawa-reedex-co-jp:20191209212927p:plain

赤枠部分に注目してください。ここがJSON形式プリザンターにリクエストを送信する値になります。「URL」はリクエストするURLとなっていて、「data」の中に実際の値が入っています。赤枠部分、と言いましたが、実際にはこちら全体がJSON形式となっていますが、プログラムの知識が必要となりますので、今回は雰囲気でだけ感じ取っていただければOKです。

上記のプログラムを実行したレスポンス(結果)は下記のようになります。

f:id:h-ogawa-reedex-co-jp:20190204004810p:plain

 

改行やインデントがないのでわかりにくいのですが、JSONデータ形式になっています。プリザンターがJSON形式で返却されるようにプログラミングされていることが分かりますね。

外部プログラム連携する方法としてCSVファイルでももちろんできますが、JSONファイルを利用することにより、プログラマが扱いやすいため、連携のプログラミングがやりやすくなり、より少ない時間で開発することができるようになります。このようなプログラマにも優しい仕様が、プリザンターが外部プログラムやシステムと連携しやすいといわれる所以だと思います。

 

まとめ

 今回は、プリザンターで利用されているJSONについて書いてみました。
いつもよりマニアックな、少し狭い範囲の内容となりましたが、たまにはこんな内容もよいかな、と思います。特に設定ファイルはいろいろと設定できる内容がありますのでマニュアルとファイルを眺めてみると新しい発見があるかもしれません。

それでは今回はこの辺で。
最後までご覧いただきありがとうございました。