首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从@ToString注释生成的字符串转换为对象?

问如何从@ToString注释生成的字符串转换为对象?
EN

Stack Overflow用户
提问于 2020-08-29 19:09:33
回答 2查看 8.6K关注 0票数 6

我有一个有趣的问题要解决。

让我们考虑以下类(人员和电话):

Person

代码语言:javascript
复制
@AllArgsConstructor
@Getter
@Setter
@ToString
public class Person {
    private String name;
    private int age;
    private Telephone telephone;
}

电话

代码语言:javascript
复制
@AllArgsConstructor
@Getter
@Setter
@ToString
public class Telephone {
    private int codeArea;
    private String number;
}

假设我有一个由lombok注释@ToString生成的Person对象字符串

代码语言:javascript
复制
Person(name=John, age=30, telephone=Telephone(codeArea=16, number=1111-2222))

如何再次将上面的字符串转换为对象?是否有任何库可以帮助我完成此过程,还是必须手动为其创建解析器?

我知道还有其他方法,比如生成json或将其序列化为java对象,然后将其转换回来。但是,对于我来说,这不是一个解决方案,因为我必须使用上面提到的字符串。

EN

回答 2

Stack Overflow用户

发布于 2021-02-22 18:53:07

相反,在课堂上这样做。

代码语言:javascript
复制
/**
 * Object as JSON string.
 * @return
 */
public String toString() {
    // Initiate GSON = new GsonBuilder().create();
    return GSON.toJson(this);
}

从对象到字符串:object.toString()。

从字符串到对象:GSON.fromJson(jsonString,ModelClass);

票数 4
EN

Stack Overflow用户

发布于 2020-08-30 17:48:21

最后,我想出了将这个字符串转换成JSON格式的想法,然后将它转换为对象。

因此,lombok生成的字符串是:

代码语言:javascript
复制
Person(name=John, age=30, telephone=Telephone(codeArea=16, number=1111-2222))

然后将其转换为JSON,分别将以下字符(,=和)替换为{、<代码>E 210和E 111}E 212,并删除类名:

代码语言:javascript
复制
{name:John, age:30, telephone:{codeArea=16, number=1111-2222}}

现在可以将JSON转换为对象。

我在Github中创建了一个执行此转换的项目。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63650823

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档