java - 如何从字符串实体中检索指定数据
问题描述
我有一些解析的价值,例如:
Student{id=19, groupId=1, firstName='Alex', lastName='Sparrow'}
我想解析这个字符串并获取新的 Arraylist,它将具有1,Alex,Sparrow
.
只有这个数据。
即使有其他对象,我也想制作通用解析器Group{id=22, groupName="BKS",groupCity="Moscow"};
我也将能够解析它并获取 List BKS,groupCity,Moscow
。
也许我可以使用 StringBuilder 但我不确定。
解决方案
如果您只想获取属性值。您可以考虑按键值解析。
Student{id=19, groupId=1, firstName='Alex', lastName='Sparrow'}
获取 {} 中的字符串
id=19, groupId=1, firstName='Alex', lastName='Sparrow'
然后用 "," 分割,你会得到 key=value 的数组。
使用循环继续通过 = 分割键和值
for(string item: data.split(",")){
String[] keyValues = item.split("=")
String key = keyValues[0];
String value = keyValues[1];
}
如果您想转换为 DTO 或 Pojo,您将有更多步骤将键值转换为对象字段。
您可以使用 java 反射按名称设置字段的值。
https://www.oracle.com/technical-resources/articles/java/javareflection.html
推荐阅读
- reactjs - React:防止子组件在获取数据之前进行渲染
- sql - 如何在单个查询中计算具有日期范围内实际日期和时间的轮换周计划
- php - CronJobs 失败,可能是语法错误?
- typescript - 如何使用 AWS CDK 将 EC2 卷附加到 EC2 实例
- spring - ReplyingKafkaTemplate:请求/回复 Spring Boot 应用程序中没有待处理的回复
- sql - 如何获得有价值的上个月最后一天的价值
- php - 将 ID 发布到插件中
- kubernetes - 我想创建一个命名空间并切换到 Kubernetes 中创建的命名空间
- android - 在firebase云功能中删除路径及其递归子路径
- excel - 在 Excel VBA 中寻找 Rnd 的良好替代品