J'ai la liste d'objets revenant comme le format ci-dessous (pas jolie). J'aimerais qu'il montrait comme ça (jolie). p> Ceci est ma signature de méthode, avec mon appel à la Service pour interroger le DB et le retour qui imprime JSON à l'écran. P> public class ResponseData <E> implements Serializable{
private E data;
private String status;
private String message;
private boolean hasValidationError = false;
public E getData() {
return data;
}
public void setData(E data) {
this.data = data;
}
public String getStatus() {
return status;
}
public void setStatus(String status) {
this.status = status;
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
public boolean getHasValidationError(){
return hasValidationError;
}
public void setHasValidationError(boolean hasValidationError){
this.hasValidationError = hasValidationError;
}
}
6 Réponses :
Vous avez marqué gson code> afin que vous puissiez utiliser cette bibliothèque sur
.json code> fichier:
Importer org.json. JsonObject code> p>
Je crois que vous recherchez la jolie fonctionnalité d'impression de GSON. Être que vous avez tagué votre question avec GSON, je présume que c'est correct si vous utilisez la bibliothèque. Mkyong a un excellent tutoriel sur une jolie imprimante ici .
La ligne essentielle du tutoriel est la suivante: p>
Vous pouvez utiliser Tostring (Int IndentFactor) de JSONOBJECT P>
Vous pouvez définir
MappingJacksonHttpMessageconverter code> (pas besoin de démarrage de printemps) li>
- A
jackson2objectmapperbuilder code> haricot li>
- Un simple
ObjectMapper CODE> haricot annoté avec @Primary code> li>
- une propriété de configuration (démarrage à ressort - Passer à celui-ci pour la plus simple forte>). Li>
ul>
Pour la première solution, vous devez implémenter l'interface WebmvcConfigurier code>
(Ignorer celui-ci si vous êtes au démarrage de printemps) P> spring.jackson.serialization.indent_output=true
Je pense que le meilleur moyen Beautify La chaîne JSON est la suivante à l'aide de Jackson:
import com.fasterxml.jackson.databind.ObjectMapper; ObjectMapper objectMapper = new ObjectMapper(); objectMapper.writerWithDefaultPrettyPrinter().writeValueAsString(yourObject)
@Angular_newbie Ce n'est pas spécifique de printemps, et vous devrez le répéter à chaque fois. Beaucoup de duplication pour rien.
Je suis d'accord. Je vais essayer d'utiliser votre troisième et quatrième option. Ressemble à la magie de printemps.
@Angular_newbie Eh bien, faites-moi savoir au cas où vous auriez besoin d'aide. En règle générale, si vous êtes au printemps, tenez-vous au printemps.
@LPPEDD La solution est juste pour embellir JSON. Vous pouvez créer ObjectMapper dans le contexte une fois et l'utiliser sur votre application. Je ne suis pas sûr de ce que vous entendez par duplication pour rien?
Pas besoin d'importer un tas de nouveaux trucs. Seulement quel système peut se plaindre (le cas échéant). Mais si vous utilisez déjà Jackson et que vous vouliez utiliser le mappeur -> Utilisez simplement "ReadValue" ou "writevalue" non?
Ce lien explique beaucoup de façons de faire ceci: Jackson Exemples P>
Supprimez votre affectation de résultat et utilisez la conversion directe avec MAPER P>
if (!mappedResults.isEmpty()) { response.setData(mappedResults); response.setStatus(Enum.SUCCESS.getDescription()); response.setMessage(Enum.STATUS_SUCCESS.getDescription()); return new ResponseEntity<>(response, HttpStatus.OK);
Voir Pretty Print JSON Sortie des points d'extrémité de l'actionneur de démarrage à ressort et Spring MVC Généralement , vous pouvez personnaliser votre
jackson code>
objetmapper code> mais cela dépend de la version de
Spring code> Utilisez-vous, configuration, bibliothèques.
Serialisable code> Interface n'est pas nécessaire et il ne le fait pas
true code>
JSON code>.
Dupliqué possible de