lyx595642573
lyx595642573
采纳率0%
2016-06-02 04:01 阅读 899

请大神赐一条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条回答 默认 最新

  • itdragons itdragons 2016-06-02 04:13

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

    点赞 评论 复制链接分享
  • itdragons itdragons 2016-06-02 04:15

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

    点赞 评论 复制链接分享
  • lyx595642573 lyx595642573 2016-06-02 04:20

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

    点赞 评论 复制链接分享
  • lzj0327 lzj0327 2016-06-02 04:43
     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));
                }
            }
        }
    
    点赞 评论 复制链接分享
  • baidu_35196517 baidu_35196517 2016-06-02 04:54

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

    点赞 评论 复制链接分享
  • lyx595642573 lyx595642573 2016-06-02 05:19

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

    点赞 评论 复制链接分享
  • aline200 aline200 2016-06-02 06:39

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

    点赞 评论 复制链接分享

相关推荐