Dans le cadre d'un projet , j'utilise l'API BING. Le résultat de la réponse est un objet json. Je dois le parser pour lire le nombre de résultats web. J' ai essayé mais ça n a pas marché. j'ai lu pleins de trucs sur le web; mais je n'arrive pas pourquoi lors de l'exécution j'ai toujours cette erreur :
"main" java.lang.RuntimeException: No-args constructor for class bingAPISearch.BingAPI2$DataContainer does not exist. Register an InstanceCreator with Gson for this type to fix this problem.
Y'a-t-il quelqu'un(e) qui pourra m'aider ?
Vous trouviez mes classes ainsi que mon Main ci dessous:
1// voila les classes construites selon mon objet json retourné:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94
| public class DataContainer {
public Data d;
public DataContainer() {
this.d = null;
}
public Data getD() {
return d;
}
}
public class Data {
public Result[] results;
public String __next;
public Result[] getResults() {
return results;
}
public String getNext() {
return __next;
}
public Data() {
this.results = null;
this.__next = null;
}
}
public class Result {
public Metadata __metadata;
public String ID;
public String Title;
public String Description;
public String DisplayUrl;
public String Url;
public Result() {
this.__metadata = null;;
this.ID = null;;
this.Title = null;;
this.Description = null;;
this.DisplayUrl = null;;
this.Url = null;;
}
public Metadata getMetadata() {
return __metadata;
}
public String getID() {
return ID;
}
public String getTitle() {
return Title;
}
public String getDescription() {
return Description;
}
public String getDisplayUrl() {
return DisplayUrl;
}
public String getUrl() {
return Url;
}
}
public class Metadata {
public String uri;
public String type;
public Metadata() {
this.uri = null;
this.type = null;
}
public String getUri() {
return uri;
}
public String getType() {
return type;
}
} |
2// Voila mon Main :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| public static void main(String[] args) throws Exception {
StringBuffer sb = BingAPI2.getBing("cat");
System.out.println("cest l objet json: " + sb.toString());
String json = sb.toString();
DataContainer myDataContainer = new Gson().fromJson(json, DataContainer.class);
}
} |
3// et voila mon objet json :
{"d":{"results":[{"__metadata":{"uri":"https://api.datamarket.azure.com/Data.ashx/Bing/Search/Web?Query=\u0027cat\u0027&$skip=1&$top=1","type":"WebResult"},"ID":"5d638615-f25a-4856-8df1-01c13960f57c","Title":"Unapei","Description":"Présente l\u0027association, ses activités et conseils aux parents et familles. Elle possède en France des sections locales et maille tout le territoire. Paris, France.","DisplayUrl":"www.unapei.org","Url":"http://www.unapei.org/"},{"__metadata":{"uri":"https://api.datamarket.azure.com/Data.ashx/Bing/Search/Web?Query=\u0027cat\u0027&$skip=2&$top=1","type":"WebResult"},"ID":"a391ba92-eb1b-46c8-bbab-101bc060c129","Title":"CAT - Bienvenue","Description":"Planification, performance des coûts et flexibilité des schémas de transport : nous faisons de votre logistique un atout commercial.","DisplayUrl":"www.groupecat.com","Url":"http://www.groupecat.com/"},{"__metadata":{"uri":"https://ap
Partager