正则表达式-获取Json属性值

需求

  需要获取json的字符串参数中的某个属性的值,只用json转对象后再获取层级比较多,所以使用简单的正则表达式进行获取

具体实现

  public static void main(String[] args) {
    String data = "{\"code\":1,\"msg\":\"操作成功!\",\"success\":true,\"data\":{\"code\":\"3100183130\",\"number\":\"39518133\",\"issue_date\":\"20190308\",\"amount\":\"339.62\"}}";
    List<String> failList = searchMatch(data,"code\":\"(\\w+)?\"",1);
    System.out.println(failList.toString());
}

   /**
 * 正则表达式 查找匹配的字符串
 * @param withinText 字符串
 * @param regString 正则表达式
 * @param index 提取正则匹配到字符串的哪一部分 0整串,1第一个()的内容,2第二个()...
 * @return 匹配值列表
 */
public static List<String> searchMatch(String withinText, String regString,int index) {
    List<String> resList = new ArrayList<>();
    String value = null;
    Pattern pattern = Pattern.compile(regString);
    Matcher matcher = pattern.matcher(withinText);
    if (matcher.find()) {
        matcher.reset();
        while (matcher.find()) {
            System.out.println("匹配到的整串-->" + matcher.group(0));
            value = matcher.group(index);
            System.out.println("整串中指定的子串-->" + value);
            resList.add(value);
        }
    }
    return resList;
}
posted @   寄人间于朝暮  阅读(2823)  评论(0编辑  收藏  举报
编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
点击右上角即可分享
微信分享提示