j'utilise json-simple et j'ai besoin d'imprimer les données JSON (pour les rendre plus lisibles par l'homme).
Je n'ai pas pu trouver cette fonctionnalité dans cette bibliothèque. Comment cela est-il couramment réalisé?
java
json
pretty-print
json-simple
mabuzer
la source
la source
scriptEngine.eval("result = JSON.stringify(JSON.parse(jsonString), null, 2)");
GsonBuilder
, puisque j'utilisais, jegson.toJson(object)
devais simplement changer mon instanciation deGson gson = new Gson();
àGson gson = new GsonBuilder().setPrettyPrinting().create();
et mon code a continué à fonctionner mais a assez bien imprimé l'objet au lieu d'une seule ligne.J'ai utilisé les méthodes intégrées org.json pour imprimer les données de façon jolie.
L'ordre des champs dans JSON est aléatoire par définition. Une commande spécifique est soumise à une implémentation de l'analyseur.
la source
Il semble que GSON le supporte, même si je ne sais pas si vous voulez passer de la bibliothèque que vous utilisez.
Du guide de l'utilisateur:
la source
Avec Jackson (
com.fasterxml.jackson.databind
):De: Comment activer la sortie JSON jolie impression (Jackson)
Je sais que c'est déjà dans les réponses, mais je veux l'écrire séparément ici parce que les chances sont, vous avez déjà Jackson comme dépendance et donc tout ce dont vous aurez besoin serait une ligne de code supplémentaire
la source
Si vous utilisez une implémentation d'API Java pour le traitement JSON (JSR-353), vous pouvez spécifier la
JsonGenerator.PRETTY_PRINTING
propriété lorsque vous créez unJsonGeneratorFactory
.L'exemple suivant a été initialement publié sur mon article de blog .
la source
Ma situation est que mon projet utilise un analyseur JSON hérité (non JSR) qui ne prend pas en charge la jolie impression. Cependant, j'avais besoin de produire des échantillons JSON assez imprimés; cela est possible sans avoir à ajouter de bibliothèques supplémentaires tant que vous utilisez Java 7 et supérieur:
la source
Jolie impression avec GSON sur une seule ligne:
Outre la mise en ligne, cela équivaut à la réponse acceptée .
la source
Maintenant, cela peut être réalisé avec la bibliothèque JSONLib:
http://json-lib.sourceforge.net/apidocs/net/sf/json/JSONObject.html
Si (et seulement si) vous utilisez la
toString(int indentationFactor)
méthode surchargée et non latoString()
méthode standard .J'ai vérifié cela sur la version suivante de l'API:
la source
La plupart des réponses existantes dépendent d'une bibliothèque externe ou nécessitent une version Java spéciale. Voici un code simple pour imprimer une chaîne JSON, en utilisant uniquement des API Java générales (disponibles dans Java 7 pour les versions supérieures; je n'ai pas essayé la version plus ancienne).
L'idée de base est de déclencher la mise en forme en fonction des caractères spéciaux dans JSON. Par exemple, si un '{' ou '[' est observé, le code créera une nouvelle ligne et augmentera le niveau de retrait.
Avis de non-responsabilité: je n'ai testé cela que pour certains cas JSON simples (paire clé-valeur de base, liste, JSON imbriqué). t etc.).
la source
En une seule ligne:
Le libray json-io ( https://github.com/jdereg/json-io ) est une petite bibliothèque (75K) sans autres dépendances que le JDK.
En plus de la jolie impression JSON, vous pouvez sérialiser des objets Java (graphiques d'objets Java entiers avec des cycles) en JSON, ainsi que les lire.
la source
En suivant les spécifications JSON-P 1.0 ( JSR-353 ), une solution plus actuelle pour une donnée
JsonStructure
(JsonObject
ouJsonArray
) pourrait ressembler à ceci:la source
Dans JSONLib, vous pouvez utiliser ceci:
Du Javadoc :
la source
Vous pouvez utiliser Gson comme ci-dessous
De la jolie impression JSON en utilisant Gson
Alternativement, vous pouvez utiliser Jackson comme ci-dessous
Extrait du post Pretty print JSON in Java (Jackson)
J'espère que cette aide!
la source
Utiliser org json. Lien de référence
Utilisation de Gson. Lien de référence
Utiliser Jackson. Lien de référence
Utilisation de Genson. Lien de référence .
la source
Cela a fonctionné pour moi, en utilisant Jackson:
la source
mapper
vient?Vous pouvez utiliser une petite bibliothèque json
la source
Underscore-java a une méthode statique
U.formatJson(json)
. Cinq types de formats sont pris en charge: 2, 3, 4, onglets et compact. Je suis le responsable du projet. Exemple en directProduction:
la source