首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从非结构化字符串中提取JSON字符串

从非结构化字符串中提取JSON字符串
EN

Stack Overflow用户
提问于 2020-07-10 08:55:59
回答 1查看 180关注 0票数 0

我有一个非结构化字符串,我想使用regex从其中提取下面的JSON字符串。数据为示例,但格式和“餐厅”标签是正确的。

代码语言:javascript
复制
{
    "restaurant": {
        "id": "abcd-efgh-ijkl",
        "created_at": "2020-12-31",
        "cashier_payments": []
    }
 }

然而,我想出了regex String findMe = "\"restaurant\": {(\\n.*?)+}";,它将所有的数据提取到最后一个}

我该如何纠正规则呢?

正如我们所问的,我使用Jsoup获得了非结构化字符串:

代码语言:javascript
复制
        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("-------------------");
        }

所以我想从字符串中解析。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-07-10 09:06:40

如果要提取的条目不包含对象(否则,需要正确的JSON解析器),则可以使用以下正则表达式:"restaurant":\s*\{[^}]*\}

编辑:看起来value对象确实包含其他对象,所以我建议使用JSON库,比如Jackson。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62830713

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档