Получить тег HTML ID из REST JSON Response - PullRequest
0 голосов
/ 03 сентября 2018

Мне нужно получить значения тега ID из ответа REST ниже, но я не уверен, как это сделать.

Любая помощь будет оценена.

    JSONParser jsonParser = new JSONParser();

    Object obj = jsonParser.parse(new FileReader("C:\\desktop\\file.txt"));

    JSONObject jsonObject = (JSONObject) obj;

    JSONArray components = (JSONArray) jsonObject.get("components");

Ответ

[{"rtr__numberedlist01__list":"<h2 id=\"numbered_list\" dir=\"ltr\">Cheap Bananas<\/h2>\n\n<img id=\"picture1\" src=\"\/wps\/wcm\/connect\/394b1433-90ef-4780-ab4d-9aff63d7bdba\/.jpg\" alt=\"Lorem ipsum dolor sit amet, consectetur adipiscing elit\" width=\"943\" height=\"1995\"  title=\"\" style=\"width: 236px; height: 500px; float: right;\">\n<p dir=\"ltr\">Lorem ipsum dolor sit amet, consectetur adipiscing elit<\/p>\n\n<p dir=\"ltr\">Parts of the ear:<\/p>\n\n<ul id=\"list1\" dir=\"ltr\">\n  <li>Lorem ipsum dolor sit amet, consectetur adipiscing elit<\/li>\n  <li>Lorem ipsum dolor sit amet, consectetur adipiscing elit<\/li>\n<\/ul>\n\n<div dir=\"ltr\">\n  <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit.<\/p>\n<\/div>"}]

1 Ответ

0 голосов
/ 03 сентября 2018

Должно работать что-то вроде следующего.

private static List<String> extractIds(JSONArray jsonArray) {
    List<String> ids = new ArrayList<>();
    Pattern pattern = Pattern.compile("id=\"([^\"]*)\"");
    for (int i = 0; i < jsonArray.length(); i++) {
        JSONObject o = jsonArray.getJSONObject(i);
        Iterator<String> keys = o.keys();
        while (keys.hasNext()) {
            String html = o.getString((String) keys.next());
            Matcher m = pattern.matcher(html);
            while (m.find()) {
                ids.add(m.group(1));
            }
        }
    }
    return ids;
}

Обратите внимание, что анализ HTML с помощью регулярных выражений сложен - вам, возможно, придется либо использовать какой-то синтаксический анализатор, либо убедиться, что формат ответа не меняется.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...