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 文件

当前文件

在当前 core 中,成功打开的文件会立即可通过 $ 再次引用。如果此模块是该扩展名已安装的最高优先级处理器,只输入文件名即可由此命令打开。这些是 core 提供的便捷机制;json <file> 仍是明确调用形式。

搜索

-f 同时搜索路径和值。仅搜索键时加 -k,仅搜索值时加 -v。包含 * 或 ? 的查询按掩码处理。

直接编辑

-w 会立即写入文件。: 后直接给出值;< <file> 从另一个文件读取值。-d 删除一个点路径。

写入立即生效;-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,并保留值类型。