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)可能更为可靠和方便 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/63563.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

HTTP 持久连接(长连接)

HTTP 持久连接&#xff08;长连接&#xff09; HTTP 持久连接&#xff08;HTTP Persistent Connections&#xff09;&#xff0c;也常被称作 HTTP 长连接&#xff0c;是 HTTP 协议中的一种重要特性&#xff0c;以下是关于它的详细介绍&#xff1a; 一、基本概念 在传统的 HTT…

杨振宁大学物理视频中黄色的字,c#写程序去掉

先看一下效果&#xff1a;&#xff08;还有改进的余地&#xff09; 我的方法是笨方法&#xff0c;也比较刻板。 1&#xff0c;首先想到&#xff0c;把屏幕打印下来。c#提供了这样一个函数&#xff1a; Bitmap bmp new Bitmap(640, 480, PixelFormat.Format32bppArgb); // 创…

数字图像处理(15):图像平移

&#xff08;1&#xff09;图像平移的基本原理&#xff1a;计算每个像素点的移动向量&#xff0c;并将这些像素按照指定的方向和距离进行移动。 &#xff08;2&#xff09;平移向量包括水平和垂直分量&#xff0c;可以表示为&#xff08;dx&#xff0c;dy&#xff09;&#xff…

基于springboot+vue实现的剧本杀管理系统(源码+L文+ppt)4-114

摘 要 剧本杀管理系统是一个综合性平台&#xff0c;为剧本杀游戏爱好者、创作者及商家提供多方位服务。系统具备用户账号管理、剧本分类、预约、评价和论坛交流等核心功能。通过这个平台&#xff0c;用户可以便捷地浏览各类剧本信息&#xff0c;根据兴趣和时间安排进行预约&a…

Android开发-----Could not install Gradle distribution from- gradle

Could not install Gradle distribution from - gradle 这个通常是因为网络原因导致的&#xff0c;即使科学上网了&#xff0c;但是仍然不行。所以需要另辟蹊径。 打开gradle-wrapper.properties 原地址&#xff1a;distributionUrlhttps\://services.gradle.org/distributio…

FPGA工作原理、架构及底层资源

FPGA工作原理、架构及底层资源 文章目录 FPGA工作原理、架构及底层资源前言一、FPGA工作原理二、FPGA架构及底层资源 1.FPGA架构2.FPGA底层资源 2.1可编程输入/输出单元简称&#xff08;IOB&#xff09;2.2可配置逻辑块2.3丰富的布线资源2.4数字时钟管理模块(DCM)2.5嵌入式块 …

MATLAB中drawnow命令的作用和使用方法

MATLAB 中&#xff0c;drawnow 是一个非常有用的命令&#xff0c;它的主要功能是在图形绘制过程中强制 MATLAB 更新当前图形窗口。本文具体说明其作用和使用方法 文章目录 功能说明使用场景使用方法示例代码运行结果 总结 功能说明 更新图形&#xff1a; drawnow 会立即绘制所有…

HTML Input 文件上传功能全解析:从基础到优化

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 &#x1f35a; 蓝桥云课签约作者、上架课程《Vue.js 和 E…

麒麟 V10 系统(arm64/aarch64)离线安装 docker 和 docker-compose

前期准备 查看操作系统版本&#xff0c;跟本文标题核对一下 uname -a查看操作系统架构 uname -m下载离线包 下载 docker 离线包 地址&#xff1a;https://download.docker.com/linux/static/stable/ 选择系统架构对应的文件目录&#xff1a;aarch64&#xff0c;我目前使用…

HarmonyOS(64) wrapBuilder 全局@Builder使用利器

WrapBuilder 全局Builder是什么什么时候使用wrapBuilderBuilder的限制参考资料 全局Builder是什么 局部Builder的定义方法如下&#xff1a; //定义局部Builder Builder MyBuilderFunction() {} //使用方法 this.MyBuilderFunction()全局Builder定义语法如下&#xff1a; //全…

怎么获取Java高并发经验与系统设计技能?

如何获得高并发经验&#xff1f; 这是系统邀请我回答的一个问题&#xff0c;由此也引发了我的一些思考&#xff1a;为什么人人都想要获得高并发经验&#xff1b;想拥有高并发系统设计技能&#xff1f; 其原因LZ认为主要有以下三点&#xff1a; 涨薪&#xff1a;有高并发系统设…

Spark实训

实训目的: 介绍本实训的基本内容,描述知识目标、,以及本实训的预期效果等。 1、知识目标 (1)了解spark概念、基础知识、spark处理的全周期,了解spark技术是新时代对人才的新要求。 (2)掌握Linux、hadoop、spark、hive集群环境的搭建、HDFS分布文件系统的基础知识与应用…

笔记:在WPF中BitmapSource都有哪些派生类,他们主要功能,使用方法,使用场景

一、目的&#xff1a;在WPF中BitmapSource都有哪些派生类&#xff0c;他们主要功能&#xff0c;使用方法&#xff0c;使用场景 BitmapSource 是 WPF 中图像处理的基类&#xff0c;提供了许多派生类来处理不同类型的图像源。以下是一些常见的 BitmapSource 派生类、它们的主要功…

算法-字符串-43.字符串相乘

一、题目 二、思路解析 1.思路&#xff1a; 1.双重for循环&#xff0c;倒序依次相乘 2.在倒序处理进位问题 3.最后返回参数的类型是string&#xff0c;用StringBuilder拼接&#xff0c;再转换为字符串 2.常用方法&#xff1a; 1.equals,比较对象内容是否一致 "0".eq…

Next.js优化教程:优化元数据

更多有关Next.js教程&#xff0c;请查阅&#xff1a; 【目录】Next.js 独立开发系列教程-CSDN博客 目录 前言 1. 元数据的重要性 1.1 什么是元数据&#xff1f; 1.2 元数据优化的核心目标 2. Next.js 的元数据管理工具 2.1 使用 metadata 属性 2.2 动态元数据 3. 高级…

【机器学习】机器学习的基本分类-监督学习-Lasso 回归(Least Absolute Shrinkage and Selection Operator)

Lasso 回归是一种线性回归方法&#xff0c;通过引入 ​ 正则化&#xff08;绝对值惩罚项&#xff09;约束回归系数&#xff0c;既能解决多重共线性问题&#xff0c;又具有特征选择能力。 1. Lasso 回归的目标函数 Lasso 的目标是最小化以下损失函数&#xff1a; 其中&#xff…

CH592用PB10做GPIO输入中断问题记录

PB10和PB22正常用作烧录&#xff0c;但是可以正常做GPIO口使用的&#xff0c;同时支持输入中断。因实际layout问题最终使用PB10做GPIO输入中断功能。 主要功能&#xff1a;PB10检测充电芯片状态&#xff0c;并根据充电芯片状态切换芯片自身的工作模式&#xff0c;进行不同的任务…

20.LMAX-DDD的极致性能架构

学习视频来源&#xff1a;DDD独家秘籍视频合集 https://space.bilibili.com/24690212/channel/collectiondetail?sid1940048&ctype0 文章目录 历史起源架构目标架构要素 时序对比传统时序事件溯源时序LMAX时序 单线程非阻塞异步IO&#xff08;reactor&#xff09;多线程单…

图海寻径——图相关算法的奇幻探索之旅

一、图的表示 1. 邻接矩阵 (Adjacency Matrix) #include <iostream> #include <vector> #include <queue> #include <limits>using namespace std;class GraphMatrix { private:int numVertices;vector<vector<int>> adjMatrix;const st…

Docker单机网络:解锁本地开发环境的无限潜能

作者简介&#xff1a;我是团团儿&#xff0c;是一名专注于云计算领域的专业创作者&#xff0c;感谢大家的关注 座右铭&#xff1a; 云端筑梦&#xff0c;数据为翼&#xff0c;探索无限可能&#xff0c;引领云计算新纪元 个人主页&#xff1a;团儿.-CSDN博客 目录 前言&#…