2010-05-28 2 views
9

У меня есть страница, которая возвращается как UnexpectedPage в HtmlUnit, ответ JSON. Можно ли использовать HTMLUnit для синтаксического анализа или мне нужна дополнительная библиотека?Html, обрабатывающий ответ JSON

ответ

16

HtmlUnit не поддерживает его. Он может при наивысшем выполнении функции JS. Вы должны проверить заранее, если Content-Type возвращаемого ответа соответствует application/json, а затем используйте подходящий инструмент для его анализа. Google Gson полезен в этом.

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 
} 

Если структура JSON известно заранее, вы можете даже использовать Gson, чтобы преобразовать его в fullworthy бина. Вы можете найти пример в this answer.

Смежные вопросы