A5:SQL Mk-2

開発のこと、日々のこと

SQLの実行結果をJSON形式でエクスポートする機能がほしい

ホーム フォーラム A5:SQL Mk-2掲示板 SQLの実行結果をJSON形式でエクスポートする機能がほしい

5件の投稿を表示中 - 1 - 5件目 (全5件中)
  • 投稿者
    投稿
  • #5124 返信
    Dark
    ゲスト

    A5Mk2というとても便利なソフトを使わせていただきいつもありがたく思っています。とても足を向けて寝られそうにありません。

    要望なのですが、A5Mk2でJSON形式でSQLの実行結果のテーブルをエクスポートすることは可能にならないでしょうか?
    ここ最近のツールではデータのインポートがJSONのみ対応のものも少なからずあり、現在はXMLで出力したあとその出力を別ツールでJSONに変換してJSONのみ対応のツールに読ませる、といった形で作業せざるを得ません。
    もしJSONの形式で出力ができた場合その手間を大きく節約することが出来るのですが検討していただけないでしょうか?

    よろしくおねがいします。

    #5164 返信
    松原正和
    キーマスター

    Darkさんこんにちは。
     
    JSON形式でしか、インポートできないというのは今どきですね。とりあえず、Version 2.15.0 beta 14でエクスポートのみ対応してみました。
     
    対応時に準拠すべき規格は次のようなものでしょうか?。いくつかあるようでわかりにくいですね。
    RFC 8259
    IETF STD 90
    ECMA-404 2nd edition
     
    とりあえず、以下のサイトを参考に実装しています。
    https://www.json.org/

    JSONで出力するとき、データ型として日付時刻型とバイナリ型が問題になりそうな気がしたのですが、とりあえず、
     
    日付時刻型:YYYY-MM-DDTHH:mm:ss.sssZ (ISO 8601 Extended Format、 Z はタイムゾーン)
    バイナリデータ型:Base64
     
    で出力するようにしています。
     
    あと、トップレベルのオブジェクトは配列(行情報の配列)にしています。これでDarkさんの使用されるツールで取り込みできますでしょうか?。(できればどのようなツールを使われているかお教えいただければありがたいです。)
     
    エクスポートできれば、当然インポートということになると思うのですが、インポートについては、もう少しお待ちください。

    #5225 返信
    Dark
    ゲスト

    FirefoxのCookieのうち必要なところだけSQLiteからエキスポートし、項目名の修正を一部行ってChromeのアドオンのEditThisCookieを使って読み込ませる用途で使いました。

    ほぼ変更なく読み込ませることができたのですが、文字列型や文字型の場合ダブルクオーテーションされていないとEditThisCookieは読み込まない仕様でしたのでその辺りの選択肢があるとより便利かなと思いました。
    日付型に関してはこの仕様で大丈夫かと思います(おそらく必要に応じてエクスポート前にSQL上で変換する人が大半でしょうし)。バイナリはこちらの使うソフトでの読み書きの必要性が薄く検証できていません。
    トップレベルのオブジェクトはこちらの利用するソフトも配列でしたのでこれで大丈夫です。
    JSONでの書き込みとなるとSQLとJSONの構造の違いがモロに響きそうで大変かと思いますしこちらは基本的にGUI上で読み書きすることも多く現状はなくても大丈夫そうです。松原さんの空いたときで大丈夫です。

    素早い対応ありがとうございました。

    #5376 返信
    Dark
    ゲスト

    なんか返信見逃されていそうなのでageます

    #5415 返信
    松原正和
    キーマスター

    Darkさんこんにちは。
     
    すみません。すみません、見過ごしていました。通常の文字列はダブルクォートで括っていたのですが、CLOBとして認識されるようなデータ型の場合括られていないようでした。

    Version 2.15.0 beta 17で修正しました。

5件の投稿を表示中 - 1 - 5件目 (全5件中)
返信先: SQLの実行結果をJSON形式でエクスポートする機能がほしいで#5225に返信
あなたの情報:




コメントは受け付けていません。