gpt4 book ai didi

java - 反向ToStringBuilder : convert string to object with nested object

转载 作者:太空宇宙 更新时间:2023-11-04 14:04:42 25 4
gpt4 key购买 nike

有没有办法将我的输出从 ToStringBuilder 转换回 java 对象?

由于某种原因,我需要将一些String转换为对象,这些字符串是通过ToStringBuilder从java对象转换而来的。

像这样:

[homeRequest=HomeRequest[homeDate=Tue Mar 10 07:58:17 CST 2015,homeInfo=[HomeInfo[ipId=<null>,name=Test]]]]

HomeRequest 是一个对象,HomeInfo 是一个对象。

最佳答案

您可以使用正则表达式来分割值。

String line = "[homeRequest=HomeRequest[homeDate=Tue Mar 10 07:58:17 CST 2015,homeInfo=[HomeInfo[ipId=<null>,name=Test]]]]";

Pattern pat = Pattern.compile("^.*HomeRequest\\[homeDate=([^,]*),.*HomeInfo\\[ipId=([^,]*),name=([^\\]]*).*");
Matcher m = pat.matcher(line);
if (m.find()) {
String homeDate = m.group(1);
String ipId = m.group(2);
String name = m.group(3);
...
// create new instances of the objects
}


正则表达式的解释:

^.*HomeRequest\\[homeDate= - 匹配从行开头到 homeDate=

的所有字符

([^,]*) - 匹配在第一个 , 之前停止的未指定数量的字符,稍后可以通过组索引 1 访问该组

,.*HomeInfo\\[ipId= - 匹配从 , 到文字的任何字符

([^,]*) - 匹配在第一个 , 之前停止的未指定数量的字符,稍后可以通过组索引 2 访问该组

,name= - 匹配文字子字符串

([^\\]]*) - 匹配第一个 ] 之前停止的未指定数量的字符,稍后可以通过组索引 3 访问该组

.* - 匹配所有以下字符

有关正则表达式的进一步说明,请查看此处 regex101.com 。在那里您将找到上述示例的完整解释。

关于java - 反向ToStringBuilder : convert string to object with nested object,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28986511/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com