正则表达式模式剥离一些无效的JSON元素

时间:2011-04-25 19:15:19

标签: android regex json

感谢阅读!

我正在尝试以这样的格式解析JSON提要:


(bpjc{"menu": {
                  "id": "file",
                  "value": "File",
                  "popup": {
                    "menuitem": [
                      {"value": "New", "onclick": "CreateNewDoc()"},
                      {"value": "Open", "onclick": "OpenDoc()"},
                      {"value": "Close", "onclick": "CloseDoc()"}
                    ]
                  }
                }})

我在解析JSON时遇到错误,在使用JSON Validator之后,我认为(bpjc和结束)不是有效的JSONObject,所以需要将它们删除来自饲料。

所以,我写了一个正则表达式如下:


        String regex = "\\(bpjc.*\\)";
        String input = "(bpjc{abcd})";
        Pattern pattern = Pattern.compile(regex);
        Matcher matcher = pattern.matcher(input);
        System.out.println(matcher.matches());

输出为true,但如何提取{abcd}

我指的是Regular Expressions tutorial ,但我不知道哪种模式适用于我的情况。

编辑:添加我提到的JSON parsing tutorial。我发现它很好解释。

1 个答案:

答案 0 :(得分:4)

您似乎收到格式不正确的JSONP结果。如果你知道字符总是会在前后存在,那就做一个子字符串:

json = json.substring(5, json.length-1)