簡體   English   中英

從非結構化字符串中提取 JSON 字符串

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM