[英]Extract JSON string from unstructured string
我有一个非结构化字符串,我想使用正则表达式从那里提取带有“restaurant”标签的以下 JSON 字符串。 数据是示例,但格式和“餐厅”标签是正确的。
{
"restaurant": {
"id": "abcd-efgh-ijkl",
"created_at": "2020-12-31",
"cashier_payments": []
}
}
我想出了正则表达式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("-------------------");
}
所以我想从 String 解析。
如果您要提取的条目不包含对象(否则,您将需要适当的 JSON 解析器),您可以使用以下正则表达式: "restaurant":\s*\{[^}]*\}
编辑:似乎 object 的值确实包含其他对象,所以我建议使用 JSON 库,例如 Jackson。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.