[英]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.