请大神赐一条java的正则表达式

字符串如下
[{"id":1,"name":"A公司","parentid":0,"order":200},{"id":2,"name":"B公司","parentid":1,"order":200},{"id":53,"name":"C公司","parentid":2,"order":200},{"id":95,"name":"D公司","parentid":53,"order":200}]

我要将id值为95的那一段截出来,截出来之后:{"id":95,"name":"D公司","parentid":53,"order":200}

请问大神怎么写?

7个回答

为什么要用正则来取?用json对操作!

为什么要用正则来取?用json对象来操作!

请大神指教!如何用json对象来操作?找出id值为95的片段

 public static void main(String[] args) {
        String s = "[{\"id\":1,\"name\":\"A公司\",\"parentid\":0,\"order\":200},"+
                    "{\"id\":2,\"name\":\"B公司\",\"parentid\":1,\"order\":200},"+
                    "{\"id\":53,\"name\":\"C公司\",\"parentid\":2,\"order\":200},"+
                    "{\"id\":95,\"name\":\"D公司\",\"parentid\":53,\"order\":200}]";
        JSONArray array = JSONArray.parseArray(s);
        for(int i=0;i<array.size();i++){
            Integer obj = array.getJSONObject(i).getInteger("id");
            if(obj==95){
                System.out.println(array.getJSONObject(i));
            }
        }
    }

可以为什么要用正则来取?用json对象来操作!

大家都在问为什么要用正则而不用json对象来操作,是这样的,json对象处理,只能通过查找key来获得value,然后比对value,如果不是目标,再找下一个key。这在我的业务场景里不可行,因为运算量太大,如果要一个一个循环比对的话,可能要循环600的9次方次,如果能用正则表达式直接把目标的json字符串接取出来,那效率是没法比的

如果数据量大得话,弄个数据表做数据查询不就完了么。
假如业务场景中要一次性抽取这么多数据,然后再在里边筛选,还不是得一个一个比对下去了,哪有直接抽取的。
刚开始不要用字符串的形式,把数据存在Map集合试试。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐