estou a usar json-simple e preciso imprimir dados JSON de maneira bonita (torná-los mais legíveis por humanos).
Não consegui encontrar essa funcionalidade nessa biblioteca. Como isso é comumente alcançado?
java
json
pretty-print
json-simple
mabuzer
fonte
fonte
scriptEngine.eval("result = JSON.stringify(JSON.parse(jsonString), null, 2)");
GsonBuilder
, desde que eu estava usandogson.toJson(object)
, simplesmente tive que mudar minha instanciação deGson gson = new Gson();
paraGson gson = new GsonBuilder().setPrettyPrinting().create();
e meu código continuou a funcionar, mas imprimiu bastante o objeto em vez de uma única linha.Eu costumava org.json built-in métodos para pretty-imprimir os dados.
A ordem dos campos no JSON é aleatória por definição. Uma ordem específica está sujeita à implementação do analisador.
fonte
Parece que o GSON suporta isso, embora eu não saiba se você deseja alternar da biblioteca que está usando.
No guia do usuário:
fonte
Com Jackson (
com.fasterxml.jackson.databind
):De: como ativar a saída JSON bonita de impressão (Jackson)
Eu sei que isso já está nas respostas, mas quero escrevê-lo separadamente aqui, porque as chances são de que você já tenha Jackson como uma dependência e, portanto, tudo que você precisará seria uma linha extra de código
fonte
Se você estiver usando uma implementação da API Java para processamento JSON (JSR-353), poderá especificar a
JsonGenerator.PRETTY_PRINTING
propriedade ao criar umJsonGeneratorFactory
.O exemplo a seguir foi publicado originalmente no meu blog .
fonte
Minha situação é que meu projeto usa um analisador JSON herdado (não JSR) que não suporta impressão bonita. No entanto, eu precisava produzir amostras JSON bem impressas; isso é possível sem a necessidade de adicionar bibliotecas extras, desde que você esteja usando o Java 7 e superior:
fonte
Impressão bonita com o GSON em uma linha:
Além de inline, isso é equivalente à resposta aceita .
fonte
A maioria das respostas existentes depende de alguma biblioteca externa ou requer uma versão Java especial. Aqui está um código simples para imprimir uma string JSON, usando apenas APIs Java gerais (disponível no Java 7 para versões superiores; ainda não tentei a versão mais antiga).
A idéia básica é modificar a formatação com base em caracteres especiais em JSON. Por exemplo, se um '{' ou '[' for observado, o código criará uma nova linha e aumentará o nível de recuo.
Isenção de responsabilidade: testei isso apenas em alguns casos simples de JSON (par básico de valores-chave, lista, JSON aninhado); portanto, pode ser necessário algum trabalho para texto JSON mais geral, como o valor da string com aspas dentro ou caracteres especiais (\ n, \ t etc.).
fonte
Em uma linha:
A biblioteca json-io ( https://github.com/jdereg/json-io ) é uma pequena biblioteca (75K) sem outras dependências além do JDK.
Além de JSON de impressão bonita, você pode serializar objetos Java (gráficos inteiros de objetos Java com ciclos) para JSON, bem como lê-los.
fonte
Agora isso pode ser alcançado com a biblioteca JSONLib:
http://json-lib.sourceforge.net/apidocs/net/sf/json/JSONObject.html
Se (e somente se) você usar o
toString(int indentationFactor)
método sobrecarregado e não otoString()
método padrão .Eu verifiquei isso na seguinte versão da API:
fonte
Seguindo as especificações do JSON-P 1.0 ( JSR-353 ), uma solução mais atual para um determinado
JsonStructure
(JsonObject
ouJsonArray
) poderia ter a seguinte aparência:fonte
No JSONLib, você pode usar isso:
Do Javadoc :
fonte
Você pode usar o Gson como abaixo
A partir do post JSON bonita imprimir usando Gson
Como alternativa, você pode usar Jackson como abaixo
Do post Pretty print JSON in Java (Jackson)
Espero que esta ajuda!
fonte
Usando org json. Link de referência
Usando o Gson. Link de referência
Usando Jackson. Link de referência
Usando Genson. Link de referência .
fonte
Isso funcionou para mim, usando Jackson:
fonte
mapper
veio?Você pode usar a pequena biblioteca json
fonte
Sublinhado-java tem método estático
U.formatJson(json)
. São suportados cinco tipos de formato: 2, 3, 4, guias e compactos. Eu sou o mantenedor do projeto. Exemplo ao vivoResultado:
fonte