Java 在Json对象字符串中查找和提取特定的数据

1、在处理JSON数据时,需要提出个别字段的值,通过正则表达式提取特定的数据

public static void main(String[] args) {
        //定义多个JSON对象字符串类型,假设每个对象有a,b,c 字段
        String strJson = "{\"a\":1.23,\"b\":45.67,\"c\":89.01},"
                + "{\"a\":4.56,\"b\":78.90,\"c\":12.34}";

        // 定义正则表达式,用于匹配每个对象中的字段值,以下是匹配a,b,c 字段
        String regex = "\"a\":([\\d.]+),\"b\":([\\d.]+),\"c\":([\\d.]+)";

        //编译正则表达式,将正则表达式编译成模式对象。
        Pattern pattern = Pattern.compile(regex);

        //创建匹配器,用于在  strJson  字符串中查找匹配项。
        Matcher matcher = pattern.matcher(strJson);

        //定义集合
        List<String> dataA = new ArrayList<>();
        List<String> dataB = new ArrayList<>();
        List<String> dataC = new ArrayList<>();

        //循环查找每个匹配项
        while (matcher.find()) {
            //matcher.group(n) 提取匹配的值,其中n是捕获组的索引(索引从1开始)
            dataA.add(matcher.group(1));// 将提取的a数据项添加到列表中
            dataB.add(matcher.group(2));// 将提取的b数据项添加到列表中
            dataC.add(matcher.group(3));// 将提取的c数据项添加到列表中
        }

        // 输出提取的结果
        for (String s : dataA) {
            System.out.println("a的值:"+s);
        }
        System.out.println("-----分割线-----");
        for (String s : dataB) {
            System.out.println("b的值:"+s);
        }  
        System.out.println("-----分割线-----");
        for (String s : dataC) {
            System.out.println("c的值:"+s);
        }
    }

2、打印结果:

3、总结:

通过 Pattern 和 Matcher ,可以在字符串中查找和提取特定模式的数据。在处理 JSON 数据时,正则表达式可以是一个有用的工具,尽管在某些情况下,使用 JSON 解析库(如 Jackson 或 Gson)可能更为可靠和方便 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值