json

json lee, busca y modifica JSON anidado mediante rutas con puntos sin perder los tipos de los valores. Tras una escritura, el documento se valida y se guarda como JSON normalizado.

DatosVersión 1.3.6Estable
lil-terminal

Resumen

json trabaja directamente con JSON anidado: accede por rutas con puntos, busca claves o valores, escribe de forma atómica un valor literal o tomado de otro archivo, valida el documento y muestra JSON normalizado sin búfer de sesión.

La ruta selecciona un nodo y el tipo se conserva

La orden trabaja con la estructura, no con un fragmento de texto. limits.history apunta a un nodo anidado, -w cambia esa ruta y los valores JSON válidos tras : conservan su tipo: número, booleano, null, array u objeto.

Sintaxis

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

Referencia

json <file>

mostrar datos JSON

json <file> <key>

mostrar una ruta con puntos exacta

json dump <file>

mostrar el texto JSON normalizado

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

buscar coincidencias en claves o valores; * y ? activan una máscara

-w <key> : <value>

escribir un valor directamente en el archivo

-w <key> < <file>

escribir un valor leído desde otro archivo

-d <key>

eliminar un valor por ruta con puntos

-c

validar el archivo JSON

Archivo activo

Con el core actual, un archivo abierto correctamente queda disponible de inmediato como $. Si este módulo es el controlador instalado con mayor prioridad para la extensión, basta escribir el nombre del archivo para abrirlo con este comando. Son comodidades del core; json <file> sigue siendo la forma explícita.

Búsqueda

-f busca en rutas y valores. Añada -k para buscar solo claves o -v para buscar solo valores. Las consultas con * o ? se interpretan como máscaras.

Edición directa

-w escribe el cambio inmediatamente. Tras : se indica un valor en línea; < <file> lee el valor desde otro archivo. -d elimina una ruta con puntos.

Las modificaciones se guardan al instante. -w <key> < <file> toma un valor de un archivo y -d elimina una ruta; al quitar un elemento de una matriz se desplazan los índices siguientes. JSON no permite comentarios y el formato se normaliza. Usa edit o code para editar el texto. Minimum solo lee; Base habilita las operaciones avanzadas.

Vista interactiva del sandbox

Ejecuta los ejemplos preparados directamente en la página. Los resultados están predefinidos y se muestran en el navegador; no se ejecuta ningún comando de terminal en el servidor.

Abrir el archivo y reutilizarlo con $

Instalar y administrar

Instala la versión compatible actual. Elige Base para el conjunto completo de funciones o Minimum para el paquete reducido; usa upgrade para actualizar un módulo ya instalado.

Base y Minimum son dos paquetes de la misma versión actual del módulo.

Paquete Base

Instala el paquete completo con referencia local y todos los modos publicados.

install json
Paquete Minimum

Instalar el paquete reducido. No incluye la referencia local; help <cmd> -i abre la referencia actual del servidor.

install json -m
Versión pública exacta

Instalar exactamente esta versión publicada.

install json -v 1.3.6
Comprobar o actualizar

upgrade comprueba la compatibilidad y sustituye el bloque solo cuando hace falta.

upgrade json
Eliminar módulo

Elimina el bloque de extensión sin tocar el núcleo ni otros módulos.

install json -u

Ejemplos

Los ejemplos se pueden copiar, pero el sitio no los ejecuta. Revisa rutas, permisos y opciones destructivas.

Abrir el archivo y reutilizarlo con $
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
Mostrar datos 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
Mostrar una ruta con puntos exacta
json config/app.json limits.history
25
Mostrar una ruta con puntos exacta
json config/app.json features.1
code
Buscar coincidencias en claves o valores; * y ? activan una máscara
json config/app.json -f "upload" -k
limits.upload_mb  2
Buscar coincidencias en claves o valores; * y ? activan una máscara
json config/app.json -f "files" -v
features.0  files
Buscar coincidencias en claves o valores; * y ? activan una máscara
json config/app.json -f "limits.*"
limits.upload_mb  2
limits.history    25
Escribir un valor directamente en el archivo
json config/app.json -w limits.history : 30
limits.history  30
Escribir un valor leído desde otro archivo
json config/app.json -w limits.policy < config/value.json
limits.policy  {"rotate":true,"attempts":5}
Escribir un valor directamente en el archivo
json config/app.json -w features.1 : "editor"
features.1  editor
Gestionar un archivo ausente
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
Validar el archivo JSON
json config/app.json -c
Valid JSON
Mostrar el texto JSON normalizado
json dump config/app.json
{
    "name": "lil-sandbox",
    "debug": true,
    "features": [
        "files",
        "code",
        "archives"
    ],
    "limits": {
        "upload_mb": 2,
        "history": 25
    }
}
Mostrar una ruta con puntos exacta
json config/app.json unknown.key
Path not found
Validar el archivo JSON
json config/invalid.json -c
Invalid JSON
Mostrar datos JSON
json config/missing.json
File not found
Escribir un valor directamente en el archivo
json config/app.json -w limits.history
Value required after : or 

Archivo usado en este ejemplo: sandbox/config/app.json

El ejemplo usa un archivo o directorio del espacio protegido de documentación /sandbox/.

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

Documentación relacionada

Versión pública actual

v1.3.62026-11-01

Refinamiento de producción

Versión estable actual de json. json lee, busca y modifica JSON anidado mediante rutas con puntos sin perder los tipos de los valores.