JSON - la désérialisation d'un objet dynamique à l'aide de Gson
Imaginons que j'ai une classe Java de type:
public class MyClass
{
public String par1;
public Object par2;
}
Puis j'ai ceci:
String json = "{"par1":"val1","par2":{"subpar1":"subval1"}}";
Gson gson = new GsonBuilder.create();
MyClass mClass = gson.fromJson(json, MyClass.class);
La par2
JSON m'est donnée à partir d'une autre application et je ne suis pas toujours savoir quels sont ses noms de paramètres, car ils sont dynamiques.
Ma question est: quel type de Classe devrait par2
variable sur MyClass être ensemble, de sorte que la Chaîne JSON variable est correctement désérialisé de ma classe de l'objet?
Grâce
Êtes-vous attaché à Gson? Votre cas d'utilisation pourrait être traité beaucoup mieux avec une forme libre JSON processeur comme json-simple (code.google.com/p/json-simple).
OriginalL'auteur RedEagle | 2012-01-12
Vous devez vous connecter pour publier un commentaire.
Découvrez La sérialisation et la Désérialisation des Types Génériques de GSON Guide de l'Utilisateur:
À désérialiser:
Espérons que cette aide.
OriginalL'auteur yorkw
Voir la réponse de Kevin Dolan sur ce DONC, la question: Comment puis-je convertir JSON d'une table de hachage à l'aide de Gson?
Remarque, ce n'est pas la accepté de répondre et vous aurez probablement à le modifier un peu. Mais c'est assez impressionnant.
Sinon, changer le type de sécurité de votre objet de plus haut niveau et il suffit d'utiliser hashmaps et tableaux tout le chemin vers le bas. Moins de modification de Dolan, le code de cette façon.
OriginalL'auteur ccoakley
ce code:
Gson gson = new GsonBuilder.create();
devrait être:
je pense(si vous êtes de l'analyse d'un json doc).
OriginalL'auteur lanyimo