json

json はドット区切りパスで入れ子の JSON を読み取り、検索、変更し、値の型を保ちます。書き込み後は文書を検証し、正規化した JSON として保存します。

データバージョン 1.3.6安定版
lil-terminal

概要

json はネストした JSON を直接扱います。ドットパスでノードを指定し、キーや値を検索し、文字列または別ファイルの値をアトミックに書き込み、検証して正規化 JSON を確認できます。セッションバッファーは使いません。

パスはノードを選び、型は型のまま残る

テキスト断片ではなく構造を操作します。limits.history は入れ子のノードを選び、-w はそのパスを変更します。: の後が有効な JSON なら数値、真偽値、null、配列、オブジェクトの型を保ちます。

構文

lil-terminal
json <file> [key|options] · json dump <file>

リファレンス

json <file>

JSON データを表示する

json <file> <key>

ドット区切りの完全一致パスを表示する

json dump <file>

正規化した JSON ソースを表示する

-f <text|mask> [-k|-v]

キーまたは値を検索する。* と ? を含む場合はマスクとして扱う

-w <key> : <value>

値をファイルへ直接書き込む

-w <key> < <file>

別ファイルから読み取った値を書き込む

-d <key>

ドット区切りパスの値を削除する

-c

JSON ファイルを検証する

使い方

json <file> [key|-f|-w|-d|-c] | json dump <file>

アクティブファイル

現在の core では、正常に開いたファイルをすぐに $ で再利用できます。このモジュールがその拡張子に対するインストール済みハンドラーのうち最優先なら、ファイル名だけを入力してこのコマンドで開けます。これらは core の補助機能であり、明示的な形式は json <file> のままです。

検索

-f はパスと値を検索します。キーだけなら -k、値だけなら -v を追加します。* または ? を含む検索語はマスクとして扱います。

直接編集

-w は変更を直ちにファイルへ書き込みます。: の後ろに値を直接指定し、< <file> では別ファイルから値を読みます。-d は 1 つのドット区切りパスを削除します。

書き込みは直ちに反映されます。-w <key> < <file> は別ファイルから値を読み、-d はパスを削除します。配列の要素を削除すると後続の添字が詰まります。JSON にコメントは使えず、保存時に書式は変わります。原文を編集するには edit または code を使ってください。Minimum は全体表示、詳細操作は Base が必要です。

インタラクティブな sandbox プレビュー

用意された例をページ上でそのまま実行できます。結果は事前に生成されてブラウザに表示され、サーバーではターミナルコマンドを実行しません。

ファイルを開いて $ で再利用する

インストールと管理

現在の互換バージョンをインストールします。全機能は Base、縮小版は Minimum を選び、すでに導入済みのモジュール更新には upgrade を使います。

Base と Minimum は同じ現在のモジュールリリースの二つのパッケージです。

Base パッケージ

ローカル参照と公開済みの全モードを含む完全パッケージをインストールします。

install json
Minimum パッケージ

縮小パッケージをインストールします。ローカルリファレンスは含まれず、help <cmd> -i で現在のサーバーリファレンスを開きます。

install json -m
正確な公開版

この公開済みバージョンを正確に指定してインストールします。

install json -v 1.3.6
確認または更新

upgrade が互換性を確認し、必要な場合だけブロックを置換します。

upgrade json
モジュールを削除

コアや他のモジュールに触れず拡張ブロックを削除します。

install json -u

例

例はコピーできますが、サイトは実行しません。実プロジェクトではパス、権限、破壊的オプションを確認してください。

ファイルを開いて $ で再利用する
cd \sandbox\config | json app.json
name              lil-sandbox
debug             true
features.0        files
features.1        code
features.2        archives
limits.upload_mb  2
limits.history    25
JSON データを表示する
cd \sandbox\config | app.json
name              lil-sandbox
debug             true
features.0        files
features.1        code
features.2        archives
limits.upload_mb  2
limits.history    25
ドット区切りの完全一致パスを表示する
json config/app.json limits.history
25
ドット区切りの完全一致パスを表示する
json config/app.json features.1
code
キーまたは値を検索する。* と ? を含む場合はマスクとして扱う
json config/app.json -f "upload" -k
limits.upload_mb  2
キーまたは値を検索する。* と ? を含む場合はマスクとして扱う
json config/app.json -f "files" -v
features.0  files
キーまたは値を検索する。* と ? を含む場合はマスクとして扱う
json config/app.json -f "limits.*"
limits.upload_mb  2
limits.history    25
値をファイルへ直接書き込む
json config/app.json -w limits.history : 30
limits.history  30
別ファイルから読み取った値を書き込む
json config/app.json -w limits.policy < config/value.json
limits.policy  {"rotate":true,"attempts":5}
値をファイルへ直接書き込む
json config/app.json -w features.1 : "editor"
features.1  editor
存在しないファイルを扱う
json config/app.json -d features.1
name              lil-sandbox
debug             true
features.0        files
features.1        archives
limits.upload_mb  2
limits.history    25
JSON ファイルを検証する
json config/app.json -c
Valid JSON
正規化した JSON ソースを表示する
json dump config/app.json
{
    "name": "lil-sandbox",
    "debug": true,
    "features": [
        "files",
        "code",
        "archives"
    ],
    "limits": {
        "upload_mb": 2,
        "history": 25
    }
}
ドット区切りの完全一致パスを表示する
json config/app.json unknown.key
Path not found
JSON ファイルを検証する
json config/invalid.json -c
Invalid JSON
JSON データを表示する
json config/missing.json
File not found
値をファイルへ直接書き込む
json config/app.json -w limits.history
Value required after : or 

この例で使うファイル: sandbox/config/app.json

例では、保護されたドキュメント用 /sandbox/ ワークスペースのファイルまたはディレクトリを使います。

{
  "name": "lil-sandbox",
  "debug": true,
  "features": ["files", "code", "archives"],
  "limits": {
    "upload_mb": 2,
    "history": 25
  }
}

関連ドキュメント

現在の公開版

v1.3.62026-11-01

プロダクション向け調整

json の現在の安定版。json はドット区切りパスで入れ子の JSON を読み取り、検索、変更し、値の型を保ちます。