2023年2月8日水曜日

SQLite3 文字列をJSONオブジェクトに変換する(JSON())

概要

文字列をJSONオブジェクトに変換するにはjson関数を使う。
SQLite3ではこの関数で変換したオブジェクトに対し様々な操作を行っていく。

環境

  • Windows 10 64bit
  • SQLite3 (3.40.1) Command-Line Shell

実行例

以下のJSONをSQLite3に認識させる。


[
    {
        "id":1
        , "name":"tomato"
    }
    ,{
        "id":2
        , "name":"potato"
    }
]
                

無事変換出来れば空白や改行が削除された状態で表示される。


sqlite> select json('
   ...>     [
   ...>         {
   ...>             "id":1
   ...>             , "name":"tomato"
   ...>         }
   ...>         ,{
   ...>             "id":2
   ...>             , "name":"potato"
   ...>         }
   ...>     ]
   ...> ');
[{"id":1,"name":"tomato"},{"id":2,"name":"potato"}]
                

正しいJSONフォーマットになっていないとエラーになる

"id":2とすべきところが "id",2となってしまっている例。


[
    {
        "id":1
        , "name":"tomato"
    }
    ,{
        "id",2
        , "name":"potato"
    }
]
                

sqlite> select json('
   ...>     [
   ...>         {
   ...>             "id":1
   ...>             , "name":"tomato"
   ...>         }
   ...>         ,{
   ...>             "id",2
   ...>             , "name":"potato"
   ...>         }
   ...>     ]
   ...> ');
Runtime error: malformed JSON
                

JSONについてきちんと勉強したければRFCを読むといい。

参考URL