Java 从RESTJSON响应获取HTML ID标记

Java 从RESTJSON响应获取HTML ID标记,java,json,rest,Java,Json,Rest,我需要从下面的REST响应中获取ID标记值,但我不确定如何做到这一点 任何帮助都将不胜感激 JSONParser jsonParser = new JSONParser(); Object obj = jsonParser.parse(new FileReader("C:\\desktop\\file.txt")); JSONObject jsonObject = (JSONObject) obj; JSONArray components = (JSONA

我需要从下面的REST响应中获取ID标记值,但我不确定如何做到这一点

任何帮助都将不胜感激

    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>"}]
\“>\n
  • Lorem ipsum door sit amet,concertetur adipiscing elit\n
  • Lorem ipsum door sit amet,concertetur adipiscing elit,concertetur adipiscing elit\n\nLorem ipsum door site amet,concertetur adipiscing elit.\n”]
  • 类似于以下的方法应该可以工作

    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;
    }
    
    private static List extractIds(JSONArray-JSONArray){
    列表ID=新的ArrayList();
    Pattern=Pattern.compile(“id=\”([^\“]*)\”);
    for(int i=0;i

    请注意,使用正则表达式解析HTML很棘手-您可能需要使用某种解析器,或者确保响应的格式不发生变化。

    您是否希望components数组中有更多的元素?它们是否都有相同的键:rtr\uuuu numberedlist01\uuuu list?虽然输出是JSON,但需要解析的值是字符串,您可能需要使用HTML解析器或Java正则表达式。不,它们都有不同的密钥,我需要检索它们。