Créer de la Chaîne Json manuellement

Je suis en train de créer une structure Json manuellement en Java. En fin de compte, j'ai besoin d'une représentation de chaîne de mon objet Json. Depuis que mon projet a déjà une dépendance à GSON, je voulais l'utiliser. Mais après plusieurs heures de l'essayer et de googler, je pense, j'ai totalement méconnaître quelque chose.

Pour le moment, j'ai le texte suivant (non-travail) code:

JsonObject user_auth = new JsonObject();
user_auth.addProperty("user_name", username);
user_auth.addProperty("password", password);
JsonObject rest_data = new JsonObject();
Gson gson = new Gson();
rest_data.addProperty("user_auth", gson.toJson(user_auth));
rest_data.addProperty("application", APPLICATION_NAME);
String payload = gson.toJson(rest_data);

Le problème que je me pose, c'est que le "user_auth" élément est échappé des guillemets (\" au lieu de " quand il est ajouté à l'élément extérieur. Comment puis-je éviter cela?
J'ai aussi essayé d'utiliser

rest_data.addProperty("user_auth", user_auth.toString());

mais cela n'a pétantes le même.

Ce qui concerne,

  • Vous êtes doublement de codage de votre JSON. Juste ajouter user_auth directement à la enfermant JsonObject, ne pas JSONify il.
  • (Avant de faire l'appel de la méthode toJson l'ensemble de votre structure de l'objet devrait toString à l'air presque exactement comme prévu résultat JSON.)
  • (La conversion de JSON et à partir de Cartes/Listes est parfaitement naturelle et simple. Des trucs comme Jackson rend les choses plus compliquées, pas moins.)
InformationsquelleAutor user1145874 | 2014-01-03