Analyse JSON à l'aide de GSON dans Android : dépannage
Lors de votre tentative d'analyse des données JSON à l'aide de GSON, vous rencontrez une erreur due à une structure JSON inattendue. Approfondissons le problème et proposons une solution.
La structure JSON que vous essayez d'analyser semble avoir un objet racine, mais vous n'utilisez pas correctement la méthode fromJson de Gson pour lire son contenu. Notez également que Gson n'est pas conçu pour gérer directement les caractères UTF-8.
Méthode d'analyse correcte
Pour résoudre l'erreur, vous devez modifier votre méthode d'analyse comme suit :
<code class="java">public static <T> ArrayList<T> JsonParse(T t, InputStream inputStream) { ArrayList<T> lcs = new ArrayList<>(); try (JsonReader reader = new JsonReader(new InputStreamReader(inputStream, "UTF8"))) { reader.beginObject(); while (reader.hasNext()) { T cse = (T) gson.fromJson(reader, t.getClass()); lcs.add(cse); } reader.endObject(); } catch (Exception e) { e.printStackTrace(); } return (ArrayList<T>) lcs; }</code>
Modification de la structure de classe de données
De plus, vous devrez peut-être modifier votre structure de classe GsonParse pour qu'elle corresponde à la structure JSON. Les changements suivants nécessitent une attention particulière :
Gestion UTF-8
Assurez-vous que la réponse JSON que vous recevez du serveur est correctement formatée en UTF-8. Vous pouvez ajouter un en-tête de type MIME dans la réponse HTTP pour spécifier le codage correct, par exemple :
responseToClient.setContentType("application/json; charset=utf-8");
En prenant en compte ces modifications, vous devriez pouvoir analyser avec succès les données JSON à l'aide de GSON dans votre application Android.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!