我想要实现的目标是:
当有新类型的JSON对象流进入时,我可以为每种类型的Stream运行CREATE TABLE,但我不想进行任何代码更改。
换句话说,我希望能够在Config文件中定义Java类。
{" studentName":" string"," studentRollNumber":" integer"," studentGrade":& #34;整数"," studentPhoneNumber":" string"}
现在,如果第二个流进来像:
{" teacherName":" string"," teacherEmployeeId":" integer"," teacherPhoneNumber":& #34;整数"," teacherAddress":" string"}
我不想做代码更改。
我可以将可能性限制为4种基本数据类型。
我可能有像
这样的规则{" excludeIf":{" columnName":" grade"," condition":" equals", "值":" 10"}
但是不要担心现在的排除规则,并关注如何从Config File重构JAVA类,然后将JSON流反序列化为该类的对象。
我看到Gson 2.0+提供了转换通用地图https://stackoverflow.com/a/20442943/429218
的功能我正在寻找更多选项来动态构建Java中的类并将JSON流反序列化为它。
由于
答案 0 :(得分:0)
这似乎在运行时,应用程序不知道JSON格式,但需要找到值和键来创建表并将数据放入db。请参阅Parsing Json in Java without knowing structure。这将让您了解以通用方式执行此操作。但是,如果应用程序发现新的和不存在的东西,您需要使用if语句编写更多代码以自动创建表。然而,正如@Jorge Campos所说,这是一个糟糕的设计。在真实世界中,应用程序将拥有合同,即客户端和服务器。以通用方式执行会影响垃圾收集的性能和cpu利用率。