我有一个非结构化字符串,我想使用regex从其中提取下面的JSON字符串。数据为示例,但格式和“餐厅”标签是正确的。
{
"restaurant": {
"id": "abcd-efgh-ijkl",
"created_at": "2020-12-31",
"cashier_payments": []
}
}然而,我想出了regex String findMe = "\"restaurant\": {(\\n.*?)+}";,它将所有的数据提取到最后一个}。
我该如何纠正规则呢?
正如我们所问的,我使用Jsoup获得了非结构化字符串:
String htmlString = contentBuilder.toString();
Document doc = Jsoup.parse(htmlString);
Elements elements = doc.getElementsByTag("script");
for (Element element :elements ){
for (DataNode node : element.dataNodes()) {
String s = node.getWholeData();
if(s.contains("\"restaurant\":")){
System.out.println(s);
}
}
System.out.println("-------------------");
}所以我想从字符串中解析。
发布于 2020-07-10 09:06:40
如果要提取的条目不包含对象(否则,需要正确的JSON解析器),则可以使用以下正则表达式:"restaurant":\s*\{[^}]*\}
编辑:看起来value对象确实包含其他对象,所以我建议使用JSON库,比如Jackson。
https://stackoverflow.com/questions/62830713
复制相似问题