无法将com.google.gson.JsonObject强制转换为com.google.gson.JsonArray
我在解析JSON响应时遇到一些问题。答复数据:无法将com.google.gson.JsonObject强制转换为com.google.gson.JsonArray,json,casting,arrays,Json,Casting,Arrays,我在解析JSON响应时遇到一些问题。答复数据: { "deal": { "categorie": { "description": "Offres Shopping", "idcategorie": "1", "nom": "Shopping" }, "conditions": "2 personne au plus", "dateAjout": "20
{
"deal": {
"categorie": {
"description": "Offres Shopping",
"idcategorie": "1",
"nom": "Shopping"
},
"conditions": "2 personne au plus",
"dateAjout": "2013-01-07T00:00:00+01:00",
"dateExp": "2013-01-31T00:00:00+01:00",
"description": "nuit dans un hotel 5 etoile",
"heurexp": "12",
"iddeal": "1",
"minutesexp": "30",
"prestataire": {
"adresse": "Qu zohour 44",
"codePostale": "12600",
"description": "Hotel 5 etoiles",
"idprestataire": "1",
"nom": "Hotel ronald",
"pays": "France",
"telephone": "99999999",
"ville": "Brest"
},
"prix": "80.0",
"prixHabituel": "200.0",
"tags": "hotel",
"titre": "Nuit 5 etoiles"
}
}
当尝试将此响应解析为列表时
出现以下异常:
无法将com.google.gson.JsonObject强制转换为com.google.gson.JsonArray
这是我用于解析的代码:
if (reponse != null && !reponse.isEmpty()) {
System.out.println(reponse);
Gson g = new Gson();
JsonParser parser = new JsonParser();
JsonObject jObject = parser.parse(reponse).getAsJsonObject();
JsonArray jArray = jObject.getAsJsonArray("deal"); // here goes the Exception
for (JsonElement elem : dealArray) {
deals.add(g.fromJson(elem, Deal.class));
}
System.out.println(deals.toString());
return "success";
}
谢谢,
deal
不是一个JSON数组,而是一个JSON对象。因此有例外。作为参考,JSON数组看起来更像这样:
"deal" : [{"attr" : "value"}, {"attr" : "value"}]
是的,但是当我调用jsonObejct.getAsJsonArray(“deal”)时,我想要得到JsonArray,我有一个例外我不知道如何进一步分解它,你不能从你的对象中得到JSON数组,因为它里面没有数组。在你发布的整个JSON中根本没有数组。您可能正在尝试访问
deal
的属性吗?是的,但我使用了用于json Gson的google库&它提供了将jsonObject转换为JsonArray的可能性,但我不知道为什么会出现此错误好的,请允许我在这里发言。在进行转换之前,将这一行添加到代码中,并告诉我结果-System.out.println(“Is Array:+jsonObject.get(“deal”).isJsonArray())代码>我想将JsonObject转换为JsonArray,以便使用new Gson()从(JsonElement,Deal.class)创建我的对象