如何解决如何从@ToString lombok注释生成的字符串转换为对象?
我有一个有趣的问题要解决。
让我们考虑以下类( Person 和 Telephone ):
人员
ol li:before {
content: attr(number-prefix) counter(item,decimal) '. ';
counter-increment: item;
}
电话
@AllArgsConstructor
@Getter
@Setter
@ToString
public class Person {
private String name;
private int age;
private Telephone telephone;
}
并假设我有一个由龙目岛注释 @ToString 生成的 Person 对象字符串:
@AllArgsConstructor
@Getter
@Setter
@ToString
public class Telephone {
private int codeArea;
private String number;
}
如何将上面的字符串再次转换为对象?是否有任何库可以帮助我完成此过程,还是必须手动为其创建解析器?
我知道还有其他方法,例如生成json或序列化为java对象,然后将其转换回。但是,这对我来说现在不是解决方案,因为我必须使用上面提到的字符串。
解决方法
最后,我想到了将该字符串转换为JSON格式,然后将其转换为对象的想法。
因此,lombok生成的字符串为:
Person(name=John,age=30,telephone=Telephone(codeArea=16,number=1111-2222))
然后通过将以下字符(, = 和)替换为 {,将其转换为JSON >,:和} ,并删除类名称:
{name:John,age:30,telephone:{codeArea=16,number=1111-2222}}
现在可以将JSON转换为对象。
我在Github中创建了一个project进行转换。
,相反,在课堂上这样做。
/**
* Object as JSON string.
* @return
*/
public String toString() {
// Declar GSON as new GsonBuilder().create();
return GSON.toJson(this);
}
从对象到字符串:使用 object.toString()。
从字符串到对象:使用 GSON.fromJson(jsonString,ModelClass);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。