json使用正确的数据值自动创建新的Java对象
我想知道Java中是否有这样一种方法可以从一个简单的POJO自动创建一个具有正确数据值的对象
假设我有一个简单的POJO,如下所示:
public class POJO {
private int intVar;
private boolean booleanVar;
private String stringVar;
public POJO(int intVar, boolean booleanVar, String stringVar) {
this.intVar = intVar;
this.booleanVar = booleanVar;
this.stringVar = stringVar;
}
//Geteru & Setteru...
}
所以基本上我想知道我能不能从这个类中创建一个对象,用一些sorta方法或者一些东西来读取变量和它们的类型,并给它们赋值,但是这个值对于变量数据类型是正确的。例如,intVar当然应该得到一个整数,stringVar应该得到一个字符串,等等
这不一定是实现这一点的方法,我实际上试图实现的是,我试图自动创建我拥有的这些POJO的JSON,但问题是我需要JSON的一些值。我已经使用gson创建了POJO的JSON,但我不知道如何为变量自动分配“正确”的值。不必通过创建新对象来实现,我所需要的只是获得一个JSON,其中包含从任何POJO创建的变量值,如下所示
例如:
{
intVar=1,
booleanVar=true,
stringVar="my string"
}
我想问的是,我是否可以从这样一个简单的POJO中自动创建一个新对象,并为变量创建正确的值,原因是这样我就可以从中创建令人满意的JSON,但是如果有人知道将值获取到JSON的其他解决方案,请随意推荐:)
# 1 楼答案
依我看,你需要试试杰克逊或格森图书馆。根据我的经验,杰克逊更好
我不能为实现编写100%的工作方式,因为根据我的经验,我从未做过同样的事情。我总是将JSON格式的数据转换成已知的类(在spring控制器中,它作为映射对象作为参数)。不知道,为什么需要映射抽象类,可能是设计错误,也可能不是
使用jackson,您将能够使用继承: http://www.baeldung.com/jackson-inheritance,但我以前从未尝试过
如果它不能满足您的需要,您可以使用:
# 2 楼答案
尝试对模型实现可序列化。 然后,如果希望使用@SeriliazedName(“stringVar”)来更改json属性名称
有一个例子:
# 3 楼答案
如果类只有原语和字符串(如示例中所示),则可以使用默认构造函数。字段将使用相应数据类型的默认值初始化: