2010-05-28 4 views
9

J'ai une page qui revient comme une page inattendue dans HtmlUnit, la réponse est JSON. Puis-je utiliser HTMLUnit pour analyser cela ou aurai-je besoin d'une bibliothèque supplémentaire?Html, gérer une réponse JSON

Répondre

16

HtmlUnit ne le supporte pas. Il peut au plus exécuter une fonction JS. Vous devez vérifier au préalable si le Content-Type de la réponse renvoyée correspond à application/json, puis utiliser l'outil approprié pour l'analyser. Google Gson est utile dans ce domaine.

WebClient client = new WebClient(); 
Page page = client.getPage("https://stackoverflow.com/users/flair/97901.json"); 
WebResponse response = page.getWebResponse(); 
if (response.getContentType().equals("application/json")) { 
    String json = response.getContentAsString(); 
    Map<String, String> map = new Gson().fromJson(json, new TypeToken<Map<String, String>>() {}.getType()); 
    System.out.println(map.get("displayName")); // Benju 
} 

Si la structure JSON est connue à l'avance, vous pouvez même utiliser Gson pour le convertir en un fullworthy Javabean. Vous pouvez trouver un exemple dans this answer.