Estoy usando json-simple y necesito imprimir bastante datos JSON (hacerlo más legible para los humanos).
No he podido encontrar esta funcionalidad dentro de esa biblioteca. ¿Cómo se logra esto comúnmente?
java
json
pretty-print
json-simple
mabuzer
fuente
fuente
scriptEngine.eval("result = JSON.stringify(JSON.parse(jsonString), null, 2)");
GsonBuilder
, ya que estaba usandogson.toJson(object)
, simplemente tuve que cambiar mi instanciación deGson gson = new Gson();
aGson gson = new GsonBuilder().setPrettyPrinting().create();
y mi código continuó funcionando pero imprimí bastante el objeto en lugar de una sola línea.Utilicé los métodos integrados de org.json para imprimir los datos de manera bonita.
El orden de los campos en JSON es aleatorio por definición. Un pedido específico está sujeto a la implementación del analizador.
fuente
Parece que GSON admite esto, aunque no sé si desea cambiar de la biblioteca que está utilizando.
De la guía del usuario:
fuente
Con Jackson (
com.fasterxml.jackson.databind
):De: Cómo habilitar la salida JSON de impresión bonita (Jackson)
Sé que esto ya está en las respuestas, pero quiero escribirlo por separado aquí porque lo más probable es que ya tengas a Jackson como dependencia, por lo que todo lo que necesitarás sería una línea de código adicional
fuente
Si está utilizando una API Java para la implementación del procesamiento JSON (JSR-353), puede especificar la
JsonGenerator.PRETTY_PRINTING
propiedad cuando cree unJsonGeneratorFactory
.El siguiente ejemplo ha sido publicado originalmente en mi blog .
fuente
Mi situación es que mi proyecto utiliza un analizador JSON heredado (no JSR) que no admite una impresión bonita. Sin embargo, necesitaba producir muestras JSON bien impresas; Esto es posible sin tener que agregar bibliotecas adicionales siempre que esté utilizando Java 7 y superior:
fuente
Impresión bonita con GSON en una línea:
Además de en línea, esto es equivalente a la respuesta aceptada .
fuente
La mayoría de las respuestas existentes dependen de alguna biblioteca externa o requieren una versión especial de Java. Aquí hay un código simple para imprimir bastante una cadena JSON, solo usando las API generales de Java (disponibles en Java 7 para versiones superiores; aunque no he probado una versión anterior).
La idea básica es activar el formato basado en caracteres especiales en JSON. Por ejemplo, si se observa un '{' o '[', el código creará una nueva línea y aumentará el nivel de sangría.
Descargo de responsabilidad: solo probé esto para algunos casos JSON simples (par clave-valor básico, lista, JSON anidado), por lo que puede necesitar algo de trabajo para texto JSON más general, como valor de cadena con comillas dentro o caracteres especiales (\ n, \ t etc.).
fuente
En una linea:
El json-io libray ( https://github.com/jdereg/json-io ) es una biblioteca pequeña (75K) sin otras dependencias que el JDK.
Además de JSON de impresión bonita, puede serializar objetos Java (gráficos de objetos Java completos con ciclos) a JSON, así como leerlos.
fuente
Ahora esto se puede lograr con la biblioteca JSONLib:
http://json-lib.sourceforge.net/apidocs/net/sf/json/JSONObject.html
Si (y solo si) usa el
toString(int indentationFactor)
método sobrecargado y no eltoString()
método estándar .He verificado esto en la siguiente versión de la API:
fuente
Siguiendo las especificaciones JSON-P 1.0 ( JSR-353 ), una solución más actual para un determinado
JsonStructure
(JsonObject
oJsonArray
) podría verse así:fuente
En JSONLib puedes usar esto:
Del Javadoc :
fuente
Puedes usar Gson como a continuación
De la publicación JSON bonita impresión usando Gson
Alternativamente, puede usar Jackson como a continuación
De la publicación Pretty print JSON en Java (Jackson)
¡Espero que esto ayude!
fuente
Usando org json. Enlace de referencia
Usando Gson. Enlace de referencia
Usando Jackson. Enlace de referencia
Usando Genson. Referencia enlace .
fuente
Esto funcionó para mí, usando Jackson:
fuente
mapper
vino esto ?Puedes usar la pequeña biblioteca json
fuente
Underscore-java tiene un método estático
U.formatJson(json)
. Se admiten cinco tipos de formatos: 2, 3, 4, pestañas y compactos. Soy el mantenedor del proyecto. Ejemplo en vivoSalida:
fuente