InglésFrancésEspañol

Ad


icono de página de OnWorks

jshon - Online en la nube

Ejecute jshon en el proveedor de alojamiento gratuito de OnWorks a través de Ubuntu Online, Fedora Online, emulador en línea de Windows o emulador en línea de MAC OS

Este es el comando jshon que se puede ejecutar en el proveedor de alojamiento gratuito de OnWorks utilizando una de nuestras múltiples estaciones de trabajo en línea gratuitas, como Ubuntu Online, Fedora Online, emulador en línea de Windows o emulador en línea de MAC OS.

PROGRAMA:

NOMBRE


jshon - Analizador JSON para el shell

SINOPSIS


jshon - [P | S | Q | V | C | I | 0] [-F ruta] - [t | l | k | u | p | a] - [s | n] valor - [e | i | d] índice

DESCRIPCIÓN


jshon analiza, lee y crea JSON. Está diseñado para ser lo más utilizable posible desde
dentro del shell y reemplaza los frágiles analizadores ad hoc hechos de grep / sed / awk, así como
Analizadores sintácticos pesados ​​de una línea hechos de perl / python.

jshon carga texto json desde stdin, realiza acciones y luego muestra la última acción en stdout.
Algunas de las opciones generan json, otras generan resúmenes de texto sin formato. Porque Bash tiene muy
estructuras de datos anidadas deficientes, jshon no devuelve el JSON como un objeto nativo como un típico
la biblioteca lo haría. En lugar de jshon conserva un historial de ediciones en una pila, y usted manipula el
elemento JSON superior.

ACCIONES


Cada acción toma la forma de una pequeña opción. Algunos requieren argumentos. Mientras que muchas instancias
of jshon pueden canalizarse entre sí, las acciones deben encadenarse secuencialmente para reducir
llamadas. Todos los ejemplos usan esta muestra json:

{"a": 1, "b": [verdadero, falso, nulo, "str"], "c": {"d": 4, "e": 5}}
jshon [acciones] <sample.json

Los usos más comunes de solo lectura solo necesitarán varios -e acciones y una -a a mediados de
de ellas.

-t (tipo) devuelve cadena, objeto, matriz, número, bool, nulo

jshon -t -> objeto

-l (longitud) devuelve un número entero. Solo funciona en cadena, objeto, matriz.

jshon -l -> 3

-k (claves) devuelve una lista de claves separadas por líneas nuevas. Solo funciona en objeto.

jshon -k -> abc

-e índice
(extracto) devuelve el valor json en "índice". Solo funciona en objeto, matriz. El índice de un
array es un número entero.

jshon -ec -> {"d": 4, "e": 5}

-a (a través) mapea las acciones restantes en el elemento seleccionado. Solo funciona en objetos
y matrices. Múltiple -a las llamadas se pueden anidar, aunque la necesidad es poco común en la práctica.

jshon -eb -a -t -> bool bool cadena nula

-s propuesta de
(cadena) devuelve una cadena codificada en json. Posteriormente se puede insertar (-i) en un
estructura.

jshon -s "back \ slash" -> "back \\ slash"

-n propuesta de
(nonstring / number) devuelve un elemento json. Posteriormente se puede insertar (-i) en un
estructura. Los valores válidos son 'verdadero', 'falso', 'nulo', 'matriz', 'objeto', enteros y
flotadores. Las abreviaturas t, f, n, [] y {} respectivamente también funcionan.

jshon -n objeto -> {}

-u (unstring) devuelve una cadena decodificada. Solo funciona en tipos simples: string, int, real,
booleano, nulo.

jshon -eb -e 3 -u -> str

-p (pop) saca la última manipulación de la pila, rebobinando el historial. Útil para
extraer varios valores de un objeto.

jshon -ec -ed -u -p -ee -u -> 4 5

-d índice
(eliminar) elimina un elemento de una matriz u objeto. Los índices de matriz negativos se ajustarán
alrededor.

jshon -db -> {"a": 1, "c": {"d": 4, "e": 5}}

-i índice
(insertar) es complicado. Es el reverso del extracto. Extraer pone un subelemento json
en la pila. Insertar elimina un subelemento de la pila e inserta ese bit de json
en la matriz / objeto más grande debajo. Use extracto para sumergirse en el árbol json,
eliminar / cadena / nonstring para cambiar las cosas, e insertar para empujar los cambios de nuevo a la
árbol.

jshon -ea -ia -> el json original
jshon -s one -ia -> {"a": "one", ...}

Las matrices se manejan de una manera especial. Pasar enteros insertará un valor sin
sobrescritura. Los enteros negativos son aceptables, al igual que la cadena 'agregar'. Para sobrescribir
un valor en una matriz: eliminar el índice, -n / s el nuevo valor y luego insértelo en el índice.

jshon -eb -d 0 -sq -i 0 -> {"b": "q", falso, nulo, "str"}

NO MANIPULACIÓN


Hay varias metaopciones que no editan directamente json. Llámalos como máximo una vez por
invocación.

-F
(archivo) lee desde un archivo en lugar de stdin. La única opción de no manipulación para tomar un
argumento.

-P (jsonp) elimina una devolución de llamada jsonp antes de continuar normalmente.

-S (sort) devuelve json ordenado por clave, en lugar del orden original.

-Q (silencioso) deshabilita el informe de errores en stderr, por lo que no tiene que rociar "2> / dev / null"
a lo largo de su guión.

-V (por valor) habilita el paso por valor en la pila del historial de edición. En casos extremos con
miles de valores profundamente anidados, esto puede resultar en jshon corriendo varias veces más lento
mientras usa varias veces más memoria. Sin embargo, el valor por valor es más seguro que por referencia y
generalmente causa menos sorpresa. Por referencia está habilitado de forma predeterminada porque no hay
riesgo durante las operaciones de solo lectura y, en general, hace que la edición de json sea más conveniente.

jshon -ec -n 7 -id -p -> c ["d"] == 7
jshon -V -ec -n 7 -id -p -> c ["d"] == 5
jshon -V -ec -n 7 -id -ic -> c ["d"] == 7

Con -V , los cambios deben insertarse manualmente de nuevo a través de la pila en lugar de simplemente
haciendo estallar los valores intermedios.

-C (continuar) sobre errores potencialmente recuperables. Por ejemplo, extraer valores que no
exist agregará 'nulo' a la pila de edición en lugar de abortar. El comportamiento puede cambiar en el
futuro.

-I (en el lugar) edición de archivos. Requiere un archivo para modificar y, por lo tanto, solo funciona con -F. Este es
destinado a realizar ligeros cambios en un archivo json. Cuando se usa, se suprime la salida normal
y se escribe la parte inferior de la pila de edición.

-0 (delimitadores nulos) Cambia el delimitador de -u de una nueva línea a un nulo. Esta opción
solo afecta a -u porque es la única vez que una nueva línea puede aparecer legítimamente en el
salida.

--versión
Devuelve una marca de tiempo AAAAMMDD y sale.

OTROS HERRAMIENTAS


jshon siempre genera un campo por línea. Muchas herramientas de Unix esperan tener varias pestañas separadas
campos por línea. Canalice la salida a través de 'pegar' para solucionar este problema. Sin embargo, pegar no puede
maneje las líneas vacías, así que rellene aquellas con un marcador de posición. Aquí hay un ejemplo:

jshon ... | sed 's / ^ $ / - /' | pegar -s -d '\ t \ t \ n'

Esto reemplaza los espacios en blanco con '-' y fusiona cada tres líneas en una.

Cada vez hay más herramientas que producen salida json. A menudo, estos utilizan una línea orientada
json / híbrido de texto plano donde cada línea es una estructura json independiente. Lamentablemente esto significa
la salida en su conjunto no es json legítima. Cualquiera de los dos bucles a través de los datos línea por línea
(vocación jshon una vez por cada línea) o conviértalo en una matriz json legítima. Por ejemplo:

mientras lee la línea; hacer jshon <<< "$ línea"; hecho <<(journalctl -o json)

journalctl -o json | sed -e '1i [' -e '$! s / $ /, /' -e '$ a]' | jshon

GOLF


Si le preocupan las frases de una sola línea extremadamente cortas, los argumentos se pueden condensar cuando no es así.
causar ambigüedad. El ejemplo de -música pop) se puede jugar al golf de la siguiente manera:

jshon -ec -ed -u -p -ee -u == jshon -ec -ed -upee -u

No recomiendo hacer esto (hace que las cosas sean mucho más difíciles de entender) pero algunas personas
golf a pesar de las consecuencias.

CREANDO JSON


jshon puede crear json pasando un objeto vacío como entrada:

jshon -s one -ia <<< "{}"

AUTORES


jshon fue escrito por Kyle Keen[email protected]> con parches de Dave Reisner
<[email protected]>, AndrewF (BSD, OSX, jsonp, clasificación) y Jean-Marc A (solaris).

Use jshon en línea usando los servicios de onworks.net


Servidores y estaciones de trabajo gratuitos

Descargar aplicaciones de Windows y Linux

Comandos de Linux

Ad