Gson : Impossible d'invoquer aucun des arguments du constructeur pour la classe
Bien qu'il y a plusieurs fils sur ce sujet.. merci de ne pas marquer ce que les doublons.
Mon pojo ressemble à ceci :
public class sample {
public sample() {
//TODO Auto-generated constructor stub
}
private String instructions;
private String resource;
private List<Map<String,String>> fields;
private String taskid;
private List<Map<String,String>> answer;
public String getTaskid() {
return taskid;
}
public void setTaskid(String taskid) {
this.taskid = taskid;
}
public String getInstructions() {
return instructions;
}
public void setInstructions(String instructions) {
this.instructions = instructions;
}
public String getResource() {
return resource;
}
public void setResource(String resource) {
this.resource = resource;
}
public List<Map<String,String>> getFields() {
return fields;
}
public void setFields(List<Map<String,String>> fields) {
this.fields = fields;
}
public List<Map<String,String>> getAnswer() {
return answer;
}
public void setAnswer(List<Map<String,String>> answer) {
this.answer = answer;
}
}
Je suis en train de faire un httpget et le résultat est un tableau d'objets Json j'essaie de catalogués à de l'échantillon, mais il donne une exception.
la désérialisation extrait de code est comme suit
sample[] temp = gsonObj.fromJson(response, sample[].class);
l'exception que je reçois est
java.lang.RuntimeException: Unable to invoke no-args constructor for class [sample;. Register an InstanceCreator with Gson for this type may fix this problem.
at com.google.gson.MappedObjectConstructor.constructWithAllocators(MappedObjectConstructor.java:68)
at com.google.gson.MappedObjectConstructor.construct(MappedObjectConstructor.java:52)
at com.google.gson.JsonObjectDeserializationVisitor.constructTarget(JsonObjectDeserializationVisitor.java:42)
at com.google.gson.JsonDeserializationVisitor.getTarget(JsonDeserializationVisitor.java:60)
at com.google.gson.ObjectNavigator.accept(ObjectNavigator.java:104)
at com.google.gson.JsonDeserializationContextDefault.fromJsonObject(JsonDeserializationContextDefault.java:76)
at com.google.gson.JsonDeserializationContextDefault.deserialize(JsonDeserializationContextDefault.java:54)
at com.google.gson.Gson.fromJson(Gson.java:551)
at com.google.gson.Gson.fromJson(Gson.java:498)
at com.google.gson.Gson.fromJson(Gson.java:467)
at com.google.gson.Gson.fromJson(Gson.java:417)
at com.google.gson.Gson.fromJson(Gson.java:389)
at HTTPClientUtils.getResultsFromMobileWorks(HTTPClientUtils.java:327)
Pouvez-vous s'il vous plaît laissez-moi savoir où je fais l'erreur ??
Il n'y a rien de mal avec le code que vous avez posté, et votre syntaxe est correcte; il devrait fonctionner très bien. Je soupçonne fortement le code exécuter n'est pas le code que vous avez énumérés. La reconstruction de votre projet.
vous devez modifier et supprimer votre entreprise-nom, et le nom du projet. Juste pour l'anonymat.
N'est-ce pas
vous devez modifier et supprimer votre entreprise-nom, et le nom du projet. Juste pour l'anonymat.
N'est-ce pas
Sample
une classe imbriquée? N'a pas le constructeur de lancer une exception?OriginalL'auteur Raveesh Sharma | 2012-10-17
Vous devez vous connecter pour publier un commentaire.
Ne peut pas se reproduire. Mais ici ce qui fonctionne:
résultats:
Note:
OriginalL'auteur Nishant
Vous devez utiliser
TypeToken
classe de Google.Vous aurez besoin de cours dispose d'une classe générique
T
pour en faire des oeuvres, comme ci-dessous:OriginalL'auteur paul