Dado un archivo con un objeto JSON grande, todo en una línea como
{"versions":[{"count":2,"version":""},{"count":1,"version":"1.1.1"},{"count":14,"version":"2.9"},{...
¿Cómo puedo formatear esto para que sea legible para humanos en Vim?
formatting
filetype-json
ljs.dev
fuente
fuente
Respuestas:
O puede instalar
jq
cuál es más rápido (escrito en C) desde su administrador de paquetes (por ejemplo,sudo apt install jq
en Ubuntu / Debian,sudo dnf install jq
en Fedora / RHEL / CentOS) o desde la fuente y luego en vim, escriba:fuente
:%!jq
Funciona igual de bien para mí..
para mí. Me pregunto porque.Este one-liner funciona bien para formatear JSON en Vim en una forma legible para humanos:
:%!python -m json.tool
fuente
:%!jq .
respuesta en estos días, ya que hago menos con Python y suelojq
instalarme en mis sistemas para cualquier trabajo JSON en la CLI. También recibo notificaciones para esta pregunta SO con bastante frecuencia, por lo que me ayuda a no olvidar: PI prefiere vim con una personalización mínima, sin complementos, etc., que es otra razón por la cualjq
mi solución ahora es mi preferida.Para formatear de manera determinista, necesitamos ordenar el hash. Ninguna de las otras respuestas hizo eso por mí, así que creé la mía:
Uso:
fuente
jq
mencionado en las respuestas de SebMa tiene una--sort-keys
opción que haría el trabajo. Pero también es genial escribir tu propia implementación :)Si PHP está disponible, agregue la herramienta
jf
como formateador JSON de Composer:Luego formatee el archivo actual:
O agregue un mapa de teclas en vimrc:
fuente
Yo uso este
:Jsonf
comando. Puede formatear unicode.fuente