Java 从RESTJSON响应获取HTML ID标记
我需要从下面的REST响应中获取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
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>"}]
\“>\nLorem 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正则表达式。不,它们都有不同的密钥,我需要检索它们。